From 50be9bb40dc60130c99ffa568e6677779904ff70 Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Mon, 18 Apr 2011 20:54:43 -0400 Subject: [PATCH] http://www.jwz.org/xscreensaver/xscreensaver-5.12.tar.gz -rw-r--r-- 1 zblaxell zblaxell 5606851 Sep 15 2010 xscreensaver-5.12.tar.gz 7252540b1b1853459a56453714c0974de26fa4c5 xscreensaver-5.12.tar.gz --- OSX/._InvertedSlider.m | Bin 173 -> 0 bytes OSX/InvertedSlider.m | 3 +- OSX/Makefile | 4 +- OSX/PrefsReader.m | 6 +- OSX/SaverTester.plist | 4 +- OSX/XScreenSaver.plist | 4 +- OSX/XScreenSaverConfigSheet.m | 28 +- OSX/XScreenSaverGLView.m | 5 + OSX/XScreenSaverView.m | 1 + OSX/bindist.rtf | 87 +- OSX/jwxyz.m | 233 +- OSX/update-info-plist.pl | 16 +- README | 9 + config.h.in | 5 + configure | 421 ++- configure.in | 138 +- driver/Makefile.in | 6 + driver/XScreenSaver.ad.in | 5 +- driver/XScreenSaver_ad.h | 1 + driver/demo-Gtk-conf.c | 56 +- driver/demo-Gtk.c | 117 +- driver/lock.c | 84 +- driver/prefs.c | 6 + driver/remote.c | 15 + driver/subprocs.c | 35 +- driver/test-passwd.c | 3 + driver/timers.c | 29 +- driver/types.h | 13 + driver/xscreensaver-demo.glade2 | 247 +- driver/xscreensaver-text | 38 +- driver/xscreensaver.c | 45 + driver/xscreensaver.h | 5 + driver/xset.c | 174 + hacks/._barcode.c | Bin 0 -> 170 bytes hacks/._celtic.c | Bin 0 -> 170 bytes hacks/._demon.c | Bin 0 -> 167 bytes hacks/._eruption.c | Bin 0 -> 170 bytes hacks/._flow.c | Bin 0 -> 170 bytes hacks/._interaggregate.c | Bin 0 -> 170 bytes hacks/._noseguy.c | Bin 0 -> 170 bytes hacks/._petri.c | Bin 0 -> 170 bytes hacks/._shadebobs.c | Bin 0 -> 170 bytes hacks/._slidescreen.c | Bin 0 -> 170 bytes hacks/._webcollage-helper-cocoa.m | Bin 0 -> 170 bytes hacks/._zoom.c | Bin 0 -> 170 bytes hacks/analogtv.c | 16 +- hacks/anemone.c | 2 - hacks/apple2-main.c | 4 +- hacks/asm6502.c | 72 +- hacks/barcode.c | 2 +- hacks/celtic.c | 2 - hacks/config/README | 4 +- hacks/config/glhanoi.xml | 10 +- hacks/config/rubik.xml | 7 +- hacks/demon.c | 6 +- hacks/epicycle.c | 14 +- hacks/eruption.c | 6 +- hacks/fadeplot.c | 4 +- hacks/flame.c | 6 +- hacks/flow.c | 2 +- hacks/fontglide.c | 9 +- hacks/fps.c | 4 - hacks/fuzzyflakes.c | 2 - hacks/glx/._blinkbox.c | Bin 0 -> 170 bytes hacks/glx/._blocktube.c | Bin 0 -> 170 bytes hacks/glx/._boing.c | Bin 0 -> 170 bytes hacks/glx/._bouncingcow.c | Bin 0 -> 170 bytes hacks/glx/._buildlwo.c | Bin 0 -> 170 bytes hacks/glx/._carousel.c | Bin 0 -> 170 bytes hacks/glx/._circuit.c | Bin 0 -> 170 bytes hacks/glx/._cubestorm.c | Bin 0 -> 170 bytes hacks/glx/._flipflop.c | Bin 0 -> 170 bytes hacks/glx/._flyingtoasters.c | Bin 0 -> 170 bytes hacks/glx/._gears.c | Bin 0 -> 170 bytes hacks/glx/._glknots.c | Bin 0 -> 170 bytes hacks/glx/._gltext.c | Bin 0 -> 167 bytes hacks/glx/._jigglypuff.c | Bin 0 -> 170 bytes hacks/glx/._klein.c | Bin 0 -> 170 bytes hacks/glx/._lavalite.c | Bin 0 -> 170 bytes hacks/glx/._menger.c | Bin 0 -> 170 bytes hacks/glx/._moebiusgears.c | Bin 0 -> 170 bytes hacks/glx/._pinion.c | Bin 0 -> 170 bytes hacks/glx/._polyhedra-gl.c | Bin 0 -> 170 bytes hacks/glx/._skytentacles.c | Bin 0 -> 170 bytes hacks/glx/._sonar-icmp.c | Bin 0 -> 170 bytes hacks/glx/._sonar.c | Bin 0 -> 170 bytes hacks/glx/._spheremonics.c | Bin 0 -> 170 bytes hacks/glx/._stonerview.c | Bin 0 -> 170 bytes hacks/glx/._tangram.c | Bin 0 -> 170 bytes hacks/glx/._timetunnel.c | Bin 0 -> 170 bytes hacks/glx/._tunnel_draw.c | Bin 0 -> 170 bytes hacks/glx/._voronoi.c | Bin 0 -> 170 bytes hacks/glx/Makefile.in | 2 +- hacks/glx/blinkbox.c | 2 +- hacks/glx/blocktube.c | 1 - hacks/glx/boing.c | 2 - hacks/glx/bouncingcow.c | 2 - hacks/glx/buildlwo.c | 2 +- hacks/glx/carousel.c | 3 - hacks/glx/circuit.c | 4 - hacks/glx/cubestorm.c | 2 - hacks/glx/dangerball.c | 2 - hacks/glx/dnalogo.c | 253 +- hacks/glx/dolphin.c | 4 +- hacks/glx/engine.c | 9 +- hacks/glx/flipflop.c | 4 +- hacks/glx/flyingtoasters.c | 2 - hacks/glx/font-ximage.c | 6 +- hacks/glx/gears.c | 2 - hacks/glx/glblur.c | 2 +- hacks/glx/glhanoi.c | 366 +- hacks/glx/glhanoi.man | 8 + hacks/glx/glknots.c | 2 - hacks/glx/glmatrix.man | 29 +- hacks/glx/glplanet.c | 1 + hacks/glx/glslideshow.c | 18 +- hacks/glx/gltext.c | 5 +- hacks/glx/involute.c | 4 +- hacks/glx/jigglypuff.c | 3 +- hacks/glx/klein.c | 2 +- hacks/glx/lavalite.c | 8 +- hacks/glx/lockward.c | 1 - hacks/glx/menger.c | 2 - hacks/glx/moebiusgears.c | 2 - hacks/glx/molecule.c | 46 +- hacks/glx/pinion.c | 3 +- hacks/glx/polyhedra-gl.c | 2 - hacks/glx/polyhedra.c | 10 +- hacks/glx/rubik.c | 30 +- hacks/glx/skytentacles.c | 2 - hacks/glx/sonar-icmp.c | 8 +- hacks/glx/sonar.c | 6 +- hacks/glx/sphere.c | 99 +- hacks/glx/spheremonics.c | 22 +- hacks/glx/stairs.c | 1 + hacks/glx/stonerview.c | 2 - hacks/glx/tangram.c | 2 - hacks/glx/timetunnel.c | 6 +- hacks/glx/topblock.c | 15 +- hacks/glx/tube.c | 223 +- hacks/glx/tunnel_draw.c | 5 +- hacks/glx/voronoi.c | 2 - hacks/images/molecules/salvinorin.pdb | 92 + hacks/interaggregate.c | 1 - hacks/kaleidescope.c | 9 +- hacks/metaballs.c | 4 +- hacks/noseguy.c | 4 +- hacks/pacman.c | 8 - hacks/pacman_ai.c | 7 +- hacks/petri.c | 3 - hacks/ripples.c | 3 +- hacks/screenhack.c | 4 +- hacks/shadebobs.c | 6 +- hacks/slidescreen.c | 2 - hacks/slip.c | 3 +- hacks/speedmine.c | 2 +- hacks/spotlight.c | 3 +- hacks/strange.c | 4 +- hacks/substrate.c | 8 +- hacks/triangle.c | 2 + hacks/vermiculate.c | 2 +- hacks/webcollage-cocoa.m | 2 +- hacks/webcollage-helper-cocoa.m | 3 +- hacks/wormhole.c | 12 +- hacks/xjack.c | 13 +- hacks/xlockmore.c | 2 - hacks/xmatrix.c | 25 +- hacks/xrayswarm.c | 4 +- hacks/zoom.c | 3 +- po/._pt_BR.po | Bin 0 -> 527 bytes po/POTFILES.in | 2 +- po/pt_BR.po | 4550 +++++++++++++----------- utils/._colors.c | Bin 170 -> 0 bytes utils/colors.c | 17 +- utils/erase.c | 5 - utils/grabclient.c | 8 +- utils/spline.c | 17 +- utils/version.h | 2 +- xscreensaver.spec | 2 +- xscreensaver.xcodeproj/project.pbxproj | 438 ++- 180 files changed, 5263 insertions(+), 3263 deletions(-) delete mode 100644 OSX/._InvertedSlider.m create mode 100644 hacks/._barcode.c create mode 100644 hacks/._celtic.c create mode 100644 hacks/._demon.c create mode 100644 hacks/._eruption.c create mode 100644 hacks/._flow.c create mode 100644 hacks/._interaggregate.c create mode 100644 hacks/._noseguy.c create mode 100644 hacks/._petri.c create mode 100644 hacks/._shadebobs.c create mode 100644 hacks/._slidescreen.c create mode 100644 hacks/._webcollage-helper-cocoa.m create mode 100644 hacks/._zoom.c create mode 100644 hacks/glx/._blinkbox.c create mode 100644 hacks/glx/._blocktube.c create mode 100644 hacks/glx/._boing.c create mode 100644 hacks/glx/._bouncingcow.c create mode 100644 hacks/glx/._buildlwo.c create mode 100644 hacks/glx/._carousel.c create mode 100644 hacks/glx/._circuit.c create mode 100644 hacks/glx/._cubestorm.c create mode 100644 hacks/glx/._flipflop.c create mode 100644 hacks/glx/._flyingtoasters.c create mode 100644 hacks/glx/._gears.c create mode 100644 hacks/glx/._glknots.c create mode 100644 hacks/glx/._gltext.c create mode 100644 hacks/glx/._jigglypuff.c create mode 100644 hacks/glx/._klein.c create mode 100644 hacks/glx/._lavalite.c create mode 100644 hacks/glx/._menger.c create mode 100644 hacks/glx/._moebiusgears.c create mode 100644 hacks/glx/._pinion.c create mode 100644 hacks/glx/._polyhedra-gl.c create mode 100644 hacks/glx/._skytentacles.c create mode 100644 hacks/glx/._sonar-icmp.c create mode 100644 hacks/glx/._sonar.c create mode 100644 hacks/glx/._spheremonics.c create mode 100644 hacks/glx/._stonerview.c create mode 100644 hacks/glx/._tangram.c create mode 100644 hacks/glx/._timetunnel.c create mode 100644 hacks/glx/._tunnel_draw.c create mode 100644 hacks/glx/._voronoi.c create mode 100644 hacks/images/molecules/salvinorin.pdb create mode 100644 po/._pt_BR.po delete mode 100644 utils/._colors.c diff --git a/OSX/._InvertedSlider.m b/OSX/._InvertedSlider.m deleted file mode 100644 index 4b2da8efd75b26cd10763d05b1b586c81ba57ebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aWxQw_-lcf2;dkJ62zeN;|owJNXHx? z7DUs=h!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v__&&*57FE7?LG%_`^HZ-y@006&~ B7r+1j diff --git a/OSX/InvertedSlider.m b/OSX/InvertedSlider.m index d2060d95..327162a3 100644 --- a/OSX/InvertedSlider.m +++ b/OSX/InvertedSlider.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2010 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 @@ -63,6 +63,7 @@ - (NSAttributedString *)attributedStringValue; { + // #### "Build and Analyze" says this leaks. Unsure whether this is true. return [[NSAttributedString alloc] initWithString:[self stringValue]]; } diff --git a/OSX/Makefile b/OSX/Makefile index 03fc9899..2353dc16 100644 --- a/OSX/Makefile +++ b/OSX/Makefile @@ -90,6 +90,7 @@ dmg:: distdepend check_versions V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' $$SRC` ; \ TMPDIR="build" ; \ SRC="build/Release" ; \ + EXTRAS=../../xdaliclock/OSX/build/Release/*.saver ; \ BASE="xscreensaver-$$V" ; \ OUTDIR="../archive" ; \ DMG="$$OUTDIR/$$BASE.dmg" ; \ @@ -108,7 +109,7 @@ dmg:: distdepend check_versions 's/\\\\\\n//g; m/^RETIRED_GL_EXES\s*=\s*(.*)$$/m && print "$$1\n"' \ ../hacks/glx/Makefile.in` ; \ \ - for f in $$SRC/*.saver ; do \ + for f in $$SRC/*.saver $$EXTRAS ; do \ ok=yes ; \ ff=`echo $$f | perl -e '$$_=<>; s@^.*/(.*)\..*$$@\L$$1@; print'`; \ for r in $$retired ; do \ @@ -127,6 +128,7 @@ dmg:: distdepend check_versions cp -p XScreenSaverDMG.icns "$$STAGE/.VolumeIcon.icns" ; \ /Developer/Tools/SetFile -a C "$$STAGE" ; \ /Developer/Tools/SetFile -a E "$$STAGE/ READ ME.rtf" ; \ + seticon -d ../../xdaliclock/OSX/daliclockSaver.icns $$STAGE/DaliClock.saver;\ hdiutil makehybrid -quiet -ov -hfs -hfs-volume-name "$$VOLNAME" \ -hfs-openfolder "$$STAGE" "$$STAGE" -o "$$TMPDMG" ; \ rm -rf "$$STAGE" ; \ diff --git a/OSX/PrefsReader.m b/OSX/PrefsReader.m index 507a557b..dcbd3498 100644 --- a/OSX/PrefsReader.m +++ b/OSX/PrefsReader.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2009 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2010 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 @@ -117,11 +117,11 @@ opts++; } +#if 0 // make sure there's no resource mentioned in defaults and not options. NSEnumerator *enumerator = [defsdict keyEnumerator]; NSString *key; while ((key = [enumerator nextObject])) { -#if 0 if (! [optsdict objectForKey:key]) if (! ([key isEqualToString:@"foreground"] || // don't warn about these [key isEqualToString:@"background"] || @@ -142,8 +142,8 @@ [key isEqualToString:@"TVTint"] )) NSLog (@"warning: \"%@\" is in defaults but not options", key); -#endif /* 0 */ } +#endif /* 0 */ } diff --git a/OSX/SaverTester.plist b/OSX/SaverTester.plist index 760d1068..d3b021f1 100644 --- a/OSX/SaverTester.plist +++ b/OSX/SaverTester.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.11 + 5.12 CFBundleSignature ???? CFBundleVersion - 5.11 + 5.12 LSMinimumSystemVersion 10.4 NSMainNibFile diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index 737647c7..299defea 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.11 + 5.12 CFBundleSignature ???? CFBundleVersion - 5.11 + 5.12 LSMinimumSystemVersion 10.4 NSMainNibFile diff --git a/OSX/XScreenSaverConfigSheet.m b/OSX/XScreenSaverConfigSheet.m index 40b638c8..b529dadd 100644 --- a/OSX/XScreenSaverConfigSheet.m +++ b/OSX/XScreenSaverConfigSheet.m @@ -837,6 +837,11 @@ make_option_menu (NSUserDefaultsController *prefs, rect.origin.x = rect.origin.y = 0; rect.size.width = 10; rect.size.height = 10; + + // #### "Build and Analyze" says that all of our widgets leak, because it + // seems to not realize that place_child -> addSubview retains them. + // Not sure what to do to make these warnings go away. + NSPopUpButton *popup = [[NSPopUpButton alloc] initWithFrame:rect pullsDown:NO]; @@ -1326,7 +1331,7 @@ make_text_controls (NSUserDefaultsController *prefs, make_text_field (prefs, opts, rgroup, node2, YES); [node2 release]; - rect = [last_child(rgroup) frame]; +// rect = [last_child(rgroup) frame]; /* // trying to make the text fields be enabled only when the checkbox is on.. control = last_child (rgroup); @@ -1347,7 +1352,7 @@ make_text_controls (NSUserDefaultsController *prefs, make_file_selector (prefs, opts, rgroup, node2, NO, YES); [node2 release]; - rect = [last_child(rgroup) frame]; +// rect = [last_child(rgroup) frame]; // node2 = [[NSXMLElement alloc] initWithName:@"string"]; @@ -1359,7 +1364,7 @@ make_text_controls (NSUserDefaultsController *prefs, make_text_field (prefs, opts, rgroup, node2, YES); [node2 release]; - rect = [last_child(rgroup) frame]; +// rect = [last_child(rgroup) frame]; layout_group (rgroup, NO); @@ -1569,8 +1574,7 @@ fix_contentview_size (NSView *parent) NSRect f; NSArray *kids = [parent subviews]; int nkids = [kids count]; - NSView *text; // the NSText at the bottom of the window - NSView *last; // the last child before the NSText + NSView *text = 0; // the NSText at the bottom of the window double maxx = 0, miny = 0; int i; @@ -1586,7 +1590,6 @@ fix_contentview_size (NSView *parent) f = [kid frame]; if (f.origin.x + f.size.width > maxx) maxx = f.origin.x + f.size.width; if (f.origin.y - f.size.height < miny) miny = f.origin.y; - last = kid; // NSLog(@"start: %3.0f x %3.0f @ %3.0f %3.0f %3.0f %@", // f.size.width, f.size.height, f.origin.x, f.origin.y, // f.origin.y + f.size.height, [kid class]); @@ -1597,6 +1600,7 @@ fix_contentview_size (NSView *parent) /* Now that we know the width of the window, set the width of the NSText to that, so that it can decide what its height needs to be. */ + if (! text) abort(); f = [text frame]; // NSLog(@"text old: %3.0f x %3.0f @ %3.0f %3.0f %3.0f %@", // f.size.width, f.size.height, f.origin.x, f.origin.y, @@ -1647,10 +1651,10 @@ fix_contentview_size (NSView *parent) /* Set the contentView to the size of the children. */ f = [parent frame]; - float yoff = f.size.height; +// float yoff = f.size.height; f.size.width = maxx + LEFT_MARGIN; f.size.height = -(miny - LEFT_MARGIN*2); - yoff = f.size.height - yoff; +// yoff = f.size.height - yoff; [parent setFrame:f]; // NSLog(@"max: %3.0f x %3.0f @ %3.0f %3.0f", @@ -1897,13 +1901,6 @@ traverse_tree (NSUserDefaultsController *prefs, options:(NSXMLNodePreserveWhitespace | NSXMLNodePreserveCDATA) error:&err]; -/* clean up? - if (!xmlDoc) { - xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:furl - options:NSXMLDocumentTidyXML - error:&err]; - } -*/ if (!xmlDoc || err) { if (err) NSAssert2 (0, @"XML Error: %@: %@", @@ -1912,6 +1909,7 @@ traverse_tree (NSUserDefaultsController *prefs, } traverse_tree (prefs, self, opts, [xmlDoc rootElement]); + [xmlDoc release]; return self; } diff --git a/OSX/XScreenSaverGLView.m b/OSX/XScreenSaverGLView.m index 1ce65990..feccea63 100644 --- a/OSX/XScreenSaverGLView.m +++ b/OSX/XScreenSaverGLView.m @@ -125,6 +125,7 @@ init_GL (ModeInfo *mi) ctx = [[NSOpenGLContext alloc] initWithFormat:pixfmt shareContext:nil]; +// [pixfmt release]; // #### ??? } // Sync refreshes to the vertical blanking interval @@ -132,6 +133,10 @@ init_GL (ModeInfo *mi) [ctx setValues:&r forParameter:NSOpenGLCPSwapInterval]; check_gl_error ("NSOpenGLCPSwapInterval"); + // #### "Build and Analyze" says that ctx leaks, because it doesn't + // seem to realize that makeCurrentContext retains it (right?) + // Not sure what to do to make this warning go away. + [ctx makeCurrentContext]; check_gl_error ("makeCurrentContext"); diff --git a/OSX/XScreenSaverView.m b/OSX/XScreenSaverView.m index 65cb72e3..7173d86d 100644 --- a/OSX/XScreenSaverView.m +++ b/OSX/XScreenSaverView.m @@ -64,6 +64,7 @@ int mono_p = 0; void *addr = CFBundleGetDataPointerForName (cfb, (CFStringRef) table_name); NSAssert2 (addr, @"no symbol \"%@\" in bundle %@", table_name, path); + CFRelease (cfb); // NSLog (@"%@ = 0x%08X", table_name, (unsigned long) addr); return (struct xscreensaver_function_table *) addr; diff --git a/OSX/bindist.rtf b/OSX/bindist.rtf index a494188e..4e829f84 100644 --- a/OSX/bindist.rtf +++ b/OSX/bindist.rtf @@ -3,49 +3,60 @@ {\colortbl;\red255\green255\blue255;\red0\green0\blue240;} {\info {\title XScreenSaver Installation Instructions}}\vieww10380\viewh13000\viewkind0 -\deftab720 -\pard\pardeftab720\qc - -\f0\b\fs36 \cf0 \ -XScreenSaver -\f1\b0\fs28 \ - -\f0\b A collection of free screen savers for MacOS X\ +\deftab360 +\pard\pardeftab360\qc +\ +\b\fs36 +XScreenSaver\ +\b0\fs28 -\f1\b0 \ -by Jamie Zawinski \uc0\u8232 and many others\ +\b A collection of free screen savers for MacOS X\ \ -version 5.11 \uc0\u8232 13-Apr-2010\ +\b0 +by Jamie Zawinski\ +and many others\ +\ +version 5.12\ +15-Sep-2010\ +\ +{\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}} +\ +\pard +\b To Install:\ +\b0\li360 \ -{\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\ -\pard\pardeftab720\li720 - -\f0\b \cf0 \ -\pard\pardeftab720 -\cf0 To Install:\ -\pard\pardeftab720\li720 - -\f1\b0 \cf0 \ Simply double-click each of the savers you want to install.\ \ -If you want to install all of them, then drag all of the .saver files to the "Screen Savers" folder in your "Library" folder. (You may need to create the "Screen Savers" folder first.)\ - -\f0\b \ -\pard\pardeftab720 -\cf0 To Uninstall: -\f1\b0 \ -\pard\pardeftab720\li720 -\cf0 \ -Open the "Screen Savers" folder in your "Library" folder, and drag any unwanted savers into the trash.\ +To install \i all \i0 of them, drag all of the .saver +files to the "Screen Savers" folder in your "Library" folder. +You may need to create the "Screen Savers" folder first.\ \ -If you've previously installed screen savers for "all users" instead of "current user", they might be in "/Library/Screen Savers/" or "/System/Library/Screen Savers/" instead.\ +\pard +\b When upgrading:\ +\b0\li360 \ -\pard\pardeftab720 - -\f0\b \cf0 For More Information:\ -\pard\pardeftab720\li720 - -\f1\b0 \cf0 \ -Please visit the {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 XScreenSaver web site}}.\ +If you selected \i "Install for all users" \i0 last time, make sure +you do that again this time, or you will have both the new and old +versions of the screen savers installed. That can be confusing!\ +\ +That is, be careful not to end up with copies in "/Library/Screen Savers/"\ + as well as in +"/Users/ +\i \ul YourName\ulnone\i0 +/Library/Screen Savers/".\ +\ +\pard +\b To Uninstall:\ +\b0\li360 +\ +Open the "Screen Savers" folder and drag any unwanted savers to Trash.\ +\ +\pard +\b For More Information:\ +\b0\li360 \ -The XScreenSaver collection is free software, and all source code is available there.} +Please visit the +{\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}} +{\fldrslt \cf2 \ul \ulc2 XScreenSaver web site}}. +The XScreenSaver collection is free software, and all source code is +available there.} diff --git a/OSX/jwxyz.m b/OSX/jwxyz.m index c33b4302..604caf50 100644 --- a/OSX/jwxyz.m +++ b/OSX/jwxyz.m @@ -38,6 +38,7 @@ struct jwxyz_Drawable { enum { WINDOW, PIXMAP } type; CGContextRef cgc; + CGImageRef cgi; CGRect frame; union { struct { @@ -46,6 +47,7 @@ struct jwxyz_Drawable { } window; struct { int depth; + void *cgc_buffer; // the bits to which CGContextRef renders } pixmap; }; }; @@ -147,6 +149,21 @@ jwxyz_window_view (Window w) return w->window.view; } + +/* Call this after any modification to the bits on a Pixmap or Window. + Most Pixmaps are used frequently as sources and infrequently as + destinations, so it pays to cache the data as a CGImage as needed. + */ +static void +invalidate_drawable_cache (Drawable d) +{ + if (d && d->cgi) { + CGImageRelease (d->cgi); + d->cgi = 0; + } +} + + /* Call this when the View changes size or position. */ void @@ -188,6 +205,8 @@ jwxyz_window_resized (Display *dpy, Window w) // dpy->colorspace = CGColorSpaceCreateDeviceRGB(); # endif + + invalidate_drawable_cache (w); } @@ -246,7 +265,6 @@ XDisplayHeight (Display *dpy, int screen) return (int) dpy->main_window->frame.size.height; } - static void validate_pixel (unsigned long pixel, unsigned int depth, BOOL alpha_allowed_p) { @@ -384,7 +402,7 @@ push_bg_gc (Drawable d, GC gc, Bool fill_p) It is *way* faster to draw points by creating and drawing a 1x1 CGImage with repeated calls to CGContextDrawImage than it is to make a single - call to CGContextFillRects()! + call to CGContextFillRects() with a list of 1x1 rectangles! I still wouldn't call it *fast*, however... */ @@ -463,6 +481,7 @@ XDrawPoints (Display *dpy, Drawable d, GC gc, # endif /* ! XDRAWPOINTS_IMAGES */ pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -565,29 +584,33 @@ XCopyArea (Display *dpy, Drawable src, Drawable dst, GC gc, CLIP (src, dst, y, height); # undef CLIP -#if 0 - Assert (src_rect.size.width == dst_rect.size.width, "width out of sync"); - Assert (src_rect.size.height == dst_rect.size.height, "height out of sync"); - Assert (src_rect.origin.x >= 0 && src_rect.origin.y >= 0, "clip failed src_x"); - Assert (dst_rect.origin.x >= 0 && dst_rect.origin.y >= 0, "clip failed dst_x"); - Assert (src_rect.origin.y >= 0 && src_rect.origin.y >= 0, "clip failed src_y"); - Assert (dst_rect.origin.y >= 0 && dst_rect.origin.y >= 0, "clip failed dst_y"); - Assert (src_rect.origin.x + src_rect.size.width <= - src_frame.origin.x + src_frame.size.width, "clip failed src_width"); -#endif - if (src_rect.size.width <= 0 || src_rect.size.height <= 0) return 0; NSObject *releaseme = 0; CGImageRef cgi; BOOL mask_p = NO; + BOOL free_cgi_p = NO; if (src->type == PIXMAP) { - // get a CGImage out of the pixmap CGContext -- it's the whole pixmap, - // but it presumably shares the data pointer instead of copying it. - cgi = CGBitmapContextCreateImage (src->cgc); + // If we are copying from a Pixmap to a Pixmap or Window, we must first + // copy the bits to an intermediary CGImage object, then copy that to the + // destination drawable's CGContext. + // + // (It doesn't seem to be possible to use NSCopyBits() to optimize the + // case of copying from a Pixmap back to itself, but I don't think that + // happens very often anyway.) + // + // First we get a CGImage out of the pixmap CGContext -- it's the whole + // pixmap, but it presumably shares the data pointer instead of copying + // it. We then cache that CGImage it inside the Pixmap object. Note: + // invalidate_drawable_cache() must be called to discard this any time a + // modification is made to the pixmap, or we'll end up re-using old bits. + // + if (!src->cgi) + src->cgi = CGBitmapContextCreateImage (src->cgc); + cgi = src->cgi; // if doing a sub-rect, trim it down. if (src_rect.origin.x != src_frame.origin.x || @@ -598,8 +621,8 @@ XCopyArea (Display *dpy, Drawable src, Drawable dst, GC gc, src_rect.origin.y = (src_frame.size.height - src_rect.size.height - src_rect.origin.y); // This does not copy image data, so it should be fast. - CGImageRef cgi2 = CGImageCreateWithImageInRect (cgi, src_rect); - cgi = cgi2; + cgi = CGImageCreateWithImageInRect (cgi, src_rect); + free_cgi_p = YES; } if (src->pixmap.depth == 1) @@ -607,72 +630,60 @@ XCopyArea (Display *dpy, Drawable src, Drawable dst, GC gc, } else { /* (src->type == WINDOW) */ - NSRect nsfrom; + NSRect nsfrom; // NSRect != CGRect on 10.4 nsfrom.origin.x = src_rect.origin.x; nsfrom.origin.y = src_rect.origin.y; nsfrom.size.width = src_rect.size.width; nsfrom.size.height = src_rect.size.height; -#if 1 - // get the bits (desired sub-rectangle) out of the NSView via Cocoa. - // - NSBitmapImageRep *bm = [[NSBitmapImageRep alloc] - initWithFocusedViewRect:nsfrom]; - unsigned char *data = [bm bitmapData]; - int bps = [bm bitsPerSample]; - int bpp = [bm bitsPerPixel]; - int bpl = [bm bytesPerRow]; - releaseme = bm; -#endif - -#if 0 - // QuickDraw way (doesn't work, need NSQuickDrawView) - PixMapHandle pix = GetPortPixMap([src->window.view qdPort]); - char **data = GetPortPixMap (pix); - int bps = 8; - int bpp = 32; - int bpl = GetPixRowBytes (pix) & 0x3FFF; -#endif + if (src == dst) { -#if 0 - // get the bits (desired sub-rectangle) out of the raw frame buffer. - // (This renders wrong, and appears to be even slower anyway.) - // - int window_x, window_y; - XTranslateCoordinates (dpy, src, NULL, 0, 0, &window_x, &window_y, NULL); - window_x += nsfrom.origin.x; - window_y += (dst->frame.size.height - - (nsfrom.origin.y + nsfrom.size.height)); - - unsigned char *data = (unsigned char *) - CGDisplayAddressForPosition (dpy->cgdpy, window_x, window_y); - int bps = CGDisplayBitsPerSample (dpy->cgdpy); - int bpp = CGDisplayBitsPerPixel (dpy->cgdpy); - int bpl = CGDisplayBytesPerRow (dpy->cgdpy); + // If we are copying from a window to itself, we can use NSCopyBits() + // without first copying the rectangle to an intermediary CGImage. + // This is ~28% faster (but I *expected* it to be twice as fast...) + // (kumppa, bsod, decayscreen, memscroller, slidescreen, slip, xjack) + // + cgi = 0; -#endif + } else { - // create a CGImage from those bits - - CGDataProviderRef prov = - CGDataProviderCreateWithData (NULL, data, bpl * nsfrom.size.height, - NULL); - cgi = CGImageCreate (src_rect.size.width, src_rect.size.height, - bps, bpp, bpl, - dpy->colorspace, - /* Use whatever default bit ordering we got from - initWithFocusedViewRect. I would have assumed - that it was (kCGImageAlphaNoneSkipFirst | - kCGBitmapByteOrder32Host), but on Intel, - it's not! - */ - 0, - prov, - NULL, /* decode[] */ - NO, /* interpolate */ - kCGRenderingIntentDefault); - //Assert (CGImageGetColorSpace (cgi) == dpy->colorspace, "bad colorspace"); - CGDataProviderRelease (prov); + // If we are copying from a Window to a Pixmap, we must first copy + // the bits to an intermediary CGImage object, then copy that to the + // Pixmap's CGContext. + // + NSBitmapImageRep *bm = [[NSBitmapImageRep alloc] + initWithFocusedViewRect:nsfrom]; + unsigned char *data = [bm bitmapData]; + int bps = [bm bitsPerSample]; + int bpp = [bm bitsPerPixel]; + int bpl = [bm bytesPerRow]; + releaseme = bm; + + // create a CGImage from those bits. + // (As of 10.5, we could just do cgi = [bm CGImage] (it is autoreleased) + // but that method didn't exist in 10.4.) + + CGDataProviderRef prov = + CGDataProviderCreateWithData (NULL, data, bpl * nsfrom.size.height, + NULL); + cgi = CGImageCreate (src_rect.size.width, src_rect.size.height, + bps, bpp, bpl, + dpy->colorspace, + /* Use whatever default bit ordering we got from + initWithFocusedViewRect. I would have assumed + that it was (kCGImageAlphaNoneSkipFirst | + kCGBitmapByteOrder32Host), but on Intel, + it's not! + */ + 0, + prov, + NULL, /* decode[] */ + NO, /* interpolate */ + kCGRenderingIntentDefault); + free_cgi_p = YES; + //Assert(CGImageGetColorSpace(cgi) == dpy->colorspace,"bad colorspace"); + CGDataProviderRelease (prov); + } } if (mask_p) { // src depth == 1 @@ -707,15 +718,29 @@ XCopyArea (Display *dpy, Drawable src, Drawable dst, GC gc, CGContextFillRect (dst->cgc, orig_dst_rect); } - // copy the CGImage onto the destination CGContext - //Assert (CGImageGetColorSpace (cgi) == dpy->colorspace, "bad colorspace"); - CGContextDrawImage (dst->cgc, dst_rect, cgi); + if (cgi) { + // copy the CGImage onto the destination CGContext + //Assert(CGImageGetColorSpace(cgi) == dpy->colorspace, "bad colorspace"); + CGContextDrawImage (dst->cgc, dst_rect, cgi); + } else { + // No cgi means src == dst, and both are Windows. + NSRect nsfrom; + nsfrom.origin.x = src_rect.origin.x; // NSRect != CGRect on 10.4 + nsfrom.origin.y = src_rect.origin.y; + nsfrom.size.width = src_rect.size.width; + nsfrom.size.height = src_rect.size.height; + NSPoint nsto; + nsto.x = dst_rect.origin.x; + nsto.y = dst_rect.origin.y; + NSCopyBits (0, nsfrom, nsto); + } pop_gc (dst, gc); } - - CGImageRelease (cgi); + + if (free_cgi_p) CGImageRelease (cgi); if (releaseme) [releaseme release]; + invalidate_drawable_cache (dst); return 0; } @@ -764,6 +789,7 @@ XDrawLine (Display *dpy, Drawable d, GC gc, int x1, int y1, int x2, int y2) CGContextAddLineToPoint (d->cgc, p.x, p.y); CGContextStrokePath (d->cgc); pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -802,6 +828,7 @@ XDrawLines (Display *dpy, Drawable d, GC gc, XPoint *points, int count, if (closed_p) CGContextClosePath (d->cgc); CGContextStrokePath (d->cgc); pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -826,6 +853,7 @@ XDrawSegments (Display *dpy, Drawable d, GC gc, XSegment *segments, int count) } CGContextStrokePath (d->cgc); pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -876,6 +904,7 @@ draw_rect (Display *dpy, Drawable d, GC gc, if (gc) pop_gc (d, gc); + invalidate_drawable_cache (d); } @@ -911,6 +940,7 @@ XFillRectangles (Display *dpy, Drawable d, GC gc, XRectangle *rects, int n) rects++; } pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -954,6 +984,7 @@ XFillPolygon (Display *dpy, Drawable d, GC gc, else CGContextFillPath (d->cgc); pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -1005,6 +1036,7 @@ draw_arc (Display *dpy, Drawable d, GC gc, int x, int y, } pop_gc (d, gc); + invalidate_drawable_cache (d); return 0; } @@ -1611,6 +1643,8 @@ XPutImage (Display *dpy, Drawable d, GC gc, XImage *ximage, CGImageRelease (mask); } + invalidate_drawable_cache (d); + return 0; } @@ -1872,6 +1906,8 @@ jwxyz_draw_NSImage_or_CGImage (Display *dpy, Drawable d, geom_ret->width = dst.size.width; geom_ret->height = dst.size.height; } + + invalidate_drawable_cache (d); } @@ -1908,9 +1944,10 @@ XCreatePixmap (Display *dpy, Drawable d, p->frame.size.width = width; p->frame.size.height = height; p->pixmap.depth = depth; + p->pixmap.cgc_buffer = data; /* Quartz doesn't have a 1bpp image type. - We used to use 8bpp gray images instead of 1bpp, but some Mac video + Used to use 8bpp gray images instead of 1bpp, but some Mac video cards don't support that! So we always use 32bpp, regardless of depth. */ p->cgc = CGBitmapContextCreate (data, width, height, @@ -1929,20 +1966,41 @@ int XFreePixmap (Display *d, Pixmap p) { Assert (p->type == PIXMAP, "not a pixmap"); + invalidate_drawable_cache (p); CGContextRelease (p->cgc); + if (p->pixmap.cgc_buffer) + free (p->pixmap.cgc_buffer); free (p); return 0; } static Pixmap -copy_pixmap (Pixmap p) +copy_pixmap (Display *dpy, Pixmap p) { if (!p) return 0; Assert (p->type == PIXMAP, "not a pixmap"); + + int width = p->frame.size.width; + int height = p->frame.size.height; + char *data = (char *) malloc (width * height * 4); + if (! data) return 0; + + memcpy (data, p->pixmap.cgc_buffer, width * height * 4); + Pixmap p2 = (Pixmap) malloc (sizeof (*p2)); *p2 = *p; - CGContextRetain (p2->cgc); // #### is this ok? need to copy it instead? + p2->cgi = 0; + p2->pixmap.cgc_buffer = data; + p2->cgc = CGBitmapContextCreate (data, width, height, + 8, /* bits per component */ + width * 4, /* bpl */ + dpy->colorspace, + // Without this, it returns 0... + kCGImageAlphaNoneSkipFirst + ); + Assert (p2->cgc, "could not create CGBitmapContext"); + return p2; } @@ -2531,7 +2589,7 @@ draw_string (Display *dpy, Drawable d, GC gc, int x, int y, str, len); pop_gc (d, gc); -#else /* !0 */ +# else /* !0 */ /* The Cocoa way... */ @@ -2559,8 +2617,9 @@ draw_string (Display *dpy, Drawable d, GC gc, int x, int y, pos.y = wr.origin.y + wr.size.height - y - gc->gcv.font->metrics.descent; [nsstr drawAtPoint:pos withAttributes:attr]; -#endif /* 0 */ +# endif /* 0 */ + invalidate_drawable_cache (d); return 0; } @@ -2654,7 +2713,7 @@ XSetClipMask (Display *dpy, GC gc, Pixmap m) CGImageRelease (gc->clip_mask); } - gc->gcv.clip_mask = copy_pixmap (m); + gc->gcv.clip_mask = copy_pixmap (dpy, m); if (gc->gcv.clip_mask) gc->clip_mask = CGBitmapContextCreateImage (gc->gcv.clip_mask->cgc); else diff --git a/OSX/update-info-plist.pl b/OSX/update-info-plist.pl index 3f39bd09..18f52a59 100755 --- a/OSX/update-info-plist.pl +++ b/OSX/update-info-plist.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# Copyright © 2006-2009 Jamie Zawinski +# Copyright © 2006-2010 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 @@ -23,7 +23,7 @@ require 5; use strict; my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.13 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.14 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $verbose = 1; @@ -261,12 +261,12 @@ sub usage() { sub main() { my @files = (); - while ($#ARGV >= 0) { - $_ = shift @ARGV; - if ($_ eq "--verbose") { $verbose++; } - elsif (m/^-v+$/) { $verbose += length($_)-1; } - elsif (m/^-./) { usage; } - else { push @files, $_; } + while ($_ = $ARGV[0]) { + shift @ARGV; + if (m/^--?verbose$/s) { $verbose++; } + elsif (m/^-v+$/) { $verbose += length($_)-1; } + elsif (m/^--?q(uiet)?$/s) { $verbose = 0; } + else { push @files, $_; } } usage() unless ($#files >= 0); foreach (@files) { diff --git a/README b/README index e2ce1692..fdb0e5ac 100644 --- a/README +++ b/README @@ -38,6 +38,15 @@ XScreenSaver has an extensive manual -- please read it! =============================================================================== +Changes since 5.11: * Big speed improvement on OSX for heavy XCopyArea + users (`xmatrix', `moire2', `phosphor', etc.) + * Plugged a bad OSX-only Pixmap leak. + * Kludged around the OSX pty bug that caused text to + be truncated in phosphor, starwars, apple2, etc. + * New molecule in `molecule'. + * `glhanoi' now supports an arbitrary number of poles. + * Turned on "New Login" button by default. + * Added support for XInput-style alternate input devices. Changes since 5.10: * New versions of `photopile', `strange'. * Worked around MacOS 10.6 garbage collector bug that caused the screen saver process to become enormous. diff --git a/config.h.in b/config.h.in index 4ea77aa3..94185324 100644 --- a/config.h.in +++ b/config.h.in @@ -386,6 +386,11 @@ available if the file /usr/include/X11/extensions/Xinerama.h exists.) */ #undef HAVE_XINERAMA +/* Define this if you have the Xinput extension. This is standard since X11R5, + and is thus almost everywhere. (It's available if the file + /usr/include/X11/extensions/XInput.h exists.) */ +#undef HAVE_XINPUT + /* Define this if you have the XmComboBox Motif widget (Motif 2.0.) */ #undef HAVE_XMCOMBOBOX diff --git a/configure b/configure index e1e0f546..5da5195e 100755 --- a/configure +++ b/configure @@ -816,6 +816,7 @@ with_xidle_ext with_sgivc_ext with_dpms_ext with_xinerama_ext +with_xinput_ext with_xf86vmode_ext with_xf86gamma_ext with_randr_ext @@ -1518,6 +1519,7 @@ Screen blanking and idle-detection options: --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension. --with-dpms-ext Include support for the DPMS extension. --with-xinerama-ext Include support for the XINERAMA extension. + --with-xinput-ext Include support for the XInput extension. --with-xf86vmode-ext Include support for XFree86 virtual screens. --with-xf86gamma-ext Include support for XFree86 gamma fading. --with-randr-ext Include support for the X Resize+Rotate extension. @@ -1532,7 +1534,7 @@ Screen blanking and idle-detection options: --with-passwd-helper Include support for an external password verification helper program. --with-login-manager Put a "New Login" button on the unlock dialog that - runs a login manager such as gdmflexiserver. + runs a login manager like gdmflexiserver or kdmctl. User interface options: @@ -2193,6 +2195,9 @@ echo "command line was: $0 $@" + + + @@ -12041,6 +12046,243 @@ elif test "$with_xinerama" != no; then fi +############################################################################### +# +# Check for the XINPUT server extension. +# +############################################################################### + +have_xinput=no +with_xinput_req=unspecified + +# Check whether --with-xinput-ext was given. +if test "${with_xinput_ext+set}" = set; then + withval=$with_xinput_ext; with_xinput="$withval"; with_xinput_req="$withval" +else + with_xinput=yes +fi + + + + case "$with_xinput" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:$LINENO: checking for XINPUT headers" >&5 +$as_echo_n "checking for XINPUT headers... " >&6; } + d=$with_xinput/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:$LINENO: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:$LINENO: checking for XINPUT libs" >&5 +$as_echo_n "checking for XINPUT libs... " >&6; } + d=$with_xinput/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:$LINENO: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_xinput_req="yes" + with_xinput=$with_xinput_req + ;; + + *) + echo "" + echo "error: argument to --with-xinput-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + + +if test "$with_xinput" = yes; then + + # first check for Xinput.h + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + { $as_echo "$as_me:$LINENO: checking for X11/extensions/XInput.h" >&5 +$as_echo_n "checking for X11/extensions/XInput.h... " >&6; } +if test "${ac_cv_header_X11_extensions_XInput_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +#include +_ACEOF +rm -rf conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -rf conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_X11_extensions_XInput_h=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_X11_extensions_XInput_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XInput_h" >&5 +$as_echo "$ac_cv_header_X11_extensions_XInput_h" >&6; } +if test "x$ac_cv_header_X11_extensions_XInput_h" = x""yes; then + have_xinput=yes +fi + + + CPPFLAGS="$ac_save_CPPFLAGS" + + # if that succeeded, then check for libXi + if test "$have_xinput" = yes; then + have_xinput=no + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:$LINENO: checking for XListInputDevices in -lXi" >&5 +$as_echo_n "checking for XListInputDevices in -lXi... " >&6; } +if test "${ac_cv_lib_Xi_XListInputDevices+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXi -lXext -lX11 $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 XListInputDevices (); +int +main () +{ +return XListInputDevices (); + ; + return 0; +} +_ACEOF +rm -rf conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -rf conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_Xi_XListInputDevices=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_Xi_XListInputDevices=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xi_XListInputDevices" >&5 +$as_echo "$ac_cv_lib_Xi_XListInputDevices" >&6; } +if test "x$ac_cv_lib_Xi_XListInputDevices" = x""yes; then + have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi" +else + true +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi + + # if that succeeded, then we've really got it. + if test "$have_xinput" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_XINPUT 1 +_ACEOF + + fi + +elif test "$with_xinput" != no; then + echo "error: must be yes or no: --with-xinput-ext=$with_xinput" + exit 1 +fi + + ############################################################################### # # Check for the XF86VMODE server extension (for virtual screens.) @@ -15606,16 +15848,16 @@ esac # ############################################################################### -have_login_manager=no with_login_manager_req=unspecified -default_login_manager='gdmflexiserver -ls' +default_login_manager_1='gdmflexiserver -ls' +default_login_manager_2='kdmctl reserve' # Check whether --with-login-manager was given. if test "${with_login_manager+set}" = set; then withval=$with_login_manager; with_login_manager="$withval"; with_login_manager_req="$withval" else - with_login_manager=no + with_login_manager=yes fi # no HANDLE_X_PATH_ARG for this one @@ -15625,36 +15867,61 @@ if test "$enable_locking" = no ; then with_login_manager=no fi -if test -n "$with_login_manager_req" ; then - ac_cv_login_manager_program="" +case "$with_login_manager_req" in + no) + with_login_manager="" + ;; + + yes|unspecified) + # Try both defaults, use the one that exists. - if test "$with_login_manager_req" = "yes" ; then - with_login_manager_req=$default_login_manager - fi + set dummy $default_login_manager_1 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_login_manager_tmp+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS - case "$with_login_manager_req" in - no) - with_login_manager="" - ;; - /*) - # absolute path - set dummy $with_login_manager_req ; login_manager_tmp=$2 - { $as_echo "$as_me:$LINENO: checking for $login_manager_tmp" >&5 -$as_echo_n "checking for $login_manager_tmp... " >&6; } - if test -x "$login_manager_tmp" ; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:$LINENO: result: no" >&5 + ;; +esac +fi +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:$LINENO: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - with_login_manager="" - fi - ;; - *) - # relative path - set dummy $with_login_manager_req ; login_manager_tmp=$2 - # don't cache - unset ac_cv_path_login_manager_tmp +fi + + + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_1" + else + set dummy $default_login_manager_2 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache # Extract the first word of "$login_manager_tmp", so it can be a program name with args. set dummy $login_manager_tmp; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -15695,30 +15962,98 @@ $as_echo "no" >&6; } fi - if test -z "$login_manager_tmp" ; then - with_login_manager="" + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_2" else - with_login_manager="$login_manager_tmp" + with_login_manager="" fi - ;; - esac - ac_cv_login_manager_program="$with_login_manager" + fi + ;; -elif test -n "$ac_cv_login_manager_program"; then - { $as_echo "$as_me:$LINENO: result: checking for login_manager... (cached) $ac_cv_login_manager_program" >&5 -$as_echo "checking for login_manager... (cached) $ac_cv_login_manager_program" >&6; } + /*) + # absolute path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + { $as_echo "$as_me:$LINENO: checking for $login_manager_tmp" >&5 +$as_echo_n "checking for $login_manager_tmp... " >&6; } + if test -x "$login_manager_tmp" ; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + with_login_manager="" + fi + ;; + + *) + # relative path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_login_manager_tmp+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:$LINENO: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + + if test -z "$login_manager_tmp" ; then + with_login_manager="" + else + with_login_manager="$login_manager_tmp" + fi + ;; +esac +ac_cv_login_manager_program="$with_login_manager" + NEW_LOGIN_COMMAND_P='' NEW_LOGIN_COMMAND="$ac_cv_login_manager_program" +{ $as_echo "$as_me:$LINENO: checking for login manager" >&5 +$as_echo_n "checking for login manager... " >&6; } if test -z "$NEW_LOGIN_COMMAND" ; then - NEW_LOGIN_COMMAND="$default_login_manager" + NEW_LOGIN_COMMAND="$default_login_manager_1" NEW_LOGIN_COMMAND_P='! ' + { $as_echo "$as_me:$LINENO: result: $NEW_LOGIN_COMMAND (disabled)" >&5 +$as_echo "$NEW_LOGIN_COMMAND (disabled)" >&6; } +else + { $as_echo "$as_me:$LINENO: result: $NEW_LOGIN_COMMAND" >&5 +$as_echo "$NEW_LOGIN_COMMAND" >&6; } fi - ############################################################################### # # Check for -lgtk (and Gnome stuff) @@ -17428,7 +17763,7 @@ if test "${ac_cv_mesagl_version_string+set}" = set; then $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext < #ifndef MESA_MAJOR_VERSION diff --git a/configure.in b/configure.in index 46ca9d40..457af807 100644 --- a/configure.in +++ b/configure.in @@ -94,6 +94,12 @@ AH_TEMPLATE([HAVE_XINERAMA], elsewhere. (It's available if the file /usr/include/X11/extensions/Xinerama.h exists.)]) +AH_TEMPLATE([HAVE_XINPUT], + [Define this if you have the Xinput extension. This is + standard since X11R5, and is thus almost everywhere. + (It's available if the file /usr/include/X11/extensions/XInput.h + exists.)]) + AH_TEMPLATE([HAVE_XF86MISCSETGRABKEYSSTATE], [Define this if you have the XF86MiscSetGrabKeysState function (which allows the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key @@ -1543,6 +1549,45 @@ elif test "$with_xinerama" != no; then fi +############################################################################### +# +# Check for the XINPUT server extension. +# +############################################################################### + +have_xinput=no +with_xinput_req=unspecified +AC_ARG_WITH(xinput-ext, +[ --with-xinput-ext Include support for the XInput extension.], + [with_xinput="$withval"; with_xinput_req="$withval"], [with_xinput=yes]) + +HANDLE_X_PATH_ARG(with_xinput, --with-xinput-ext, XINPUT) + +if test "$with_xinput" = yes; then + + # first check for Xinput.h + AC_CHECK_X_HEADER(X11/extensions/XInput.h, [have_xinput=yes],, + [#include ]) + + # if that succeeded, then check for libXi + if test "$have_xinput" = yes; then + have_xinput=no + AC_CHECK_X_LIB(Xi, XListInputDevices, + [have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi"], + [true], -lXext -lX11) + fi + + # if that succeeded, then we've really got it. + if test "$have_xinput" = yes; then + AC_DEFINE(HAVE_XINPUT) + fi + +elif test "$with_xinput" != no; then + echo "error: must be yes or no: --with-xinput-ext=$with_xinput" + exit 1 +fi + + ############################################################################### # # Check for the XF86VMODE server extension (for virtual screens.) @@ -2297,15 +2342,15 @@ esac # ############################################################################### -have_login_manager=no with_login_manager_req=unspecified -default_login_manager='gdmflexiserver -ls' +default_login_manager_1='gdmflexiserver -ls' +default_login_manager_2='kdmctl reserve' AC_ARG_WITH(login-manager, [ --with-login-manager Put a "New Login" button on the unlock dialog that - runs a login manager such as gdmflexiserver.], + runs a login manager like gdmflexiserver or kdmctl.], [with_login_manager="$withval"; with_login_manager_req="$withval"], - [with_login_manager=no]) + [with_login_manager=yes]) # no HANDLE_X_PATH_ARG for this one if test "$enable_locking" = no ; then @@ -2313,57 +2358,70 @@ if test "$enable_locking" = no ; then with_login_manager=no fi -if test -n "$with_login_manager_req" ; then - ac_cv_login_manager_program="" +case "$with_login_manager_req" in + no) + with_login_manager="" + ;; - if test "$with_login_manager_req" = "yes" ; then - with_login_manager_req=$default_login_manager - fi + yes|unspecified) + # Try both defaults, use the one that exists. - case "$with_login_manager_req" in - no) - with_login_manager="" - ;; - /*) - # absolute path - set dummy $with_login_manager_req ; login_manager_tmp=$2 - AC_MSG_CHECKING([for $login_manager_tmp]) - if test -x "$login_manager_tmp" ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - with_login_manager="" - fi - ;; - *) - # relative path - set dummy $with_login_manager_req ; login_manager_tmp=$2 - # don't cache - unset ac_cv_path_login_manager_tmp + set dummy $default_login_manager_1 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_1" + else + set dummy $default_login_manager_2 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test -z "$login_manager_tmp" ; then - with_login_manager="" + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_2" else - with_login_manager="$login_manager_tmp" + with_login_manager="" fi - ;; - esac - ac_cv_login_manager_program="$with_login_manager" + fi + ;; -elif test -n "$ac_cv_login_manager_program"; then - AC_MSG_RESULT([checking for login_manager... (cached) $ac_cv_login_manager_program]) -fi + /*) + # absolute path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + AC_MSG_CHECKING([for $login_manager_tmp]) + if test -x "$login_manager_tmp" ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + with_login_manager="" + fi + ;; + + *) + # relative path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test -z "$login_manager_tmp" ; then + with_login_manager="" + else + with_login_manager="$login_manager_tmp" + fi + ;; +esac +ac_cv_login_manager_program="$with_login_manager" NEW_LOGIN_COMMAND_P='' NEW_LOGIN_COMMAND="$ac_cv_login_manager_program" +AC_MSG_CHECKING(for login manager) if test -z "$NEW_LOGIN_COMMAND" ; then - NEW_LOGIN_COMMAND="$default_login_manager" + NEW_LOGIN_COMMAND="$default_login_manager_1" NEW_LOGIN_COMMAND_P='! ' + AC_MSG_RESULT($NEW_LOGIN_COMMAND (disabled)) +else + AC_MSG_RESULT($NEW_LOGIN_COMMAND) fi - ############################################################################### # # Check for -lgtk (and Gnome stuff) diff --git a/driver/Makefile.in b/driver/Makefile.in index b97be451..225d1c02 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -128,6 +128,7 @@ XML_LIBS = @XML_LIBS@ XDPMS_LIBS = @XDPMS_LIBS@ XINERAMA_LIBS = @XINERAMA_LIBS@ +XINPUT_LIBS = @XINPUT_LIBS@ PASSWD_SRCS = @PASSWD_SRCS@ PASSWD_OBJS = @PASSWD_OBJS@ @@ -744,6 +745,11 @@ subprocs.o: subprocs.c $(CC) -c $(INCLUDES) $(SUBP_DEFS) $(CFLAGS) $(X_CFLAGS) \ $(srcdir)/subprocs.c +# xscreensaver takes an extra -D option. +xscreensaver.o: xscreensaver.c + $(CC) -c $(INCLUDES) $(DEFS) $(INTL_DEFS) $(CFLAGS) $(X_CFLAGS) \ + $(srcdir)/xscreensaver.c + # demo-Gtk takes extra -D options, and an extra -I option. demo-Gtk.o: demo-Gtk.c $(CC) -c $(INCLUDES) $(SUBP_DEFS) -I$(ICON_SRC) \ diff --git a/driver/XScreenSaver.ad.in b/driver/XScreenSaver.ad.in index 81482963..c12c3cf7 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.11 -! 13-Apr-2010 +! version 5.12 +! 15-Sep-2010 ! ! See "man xscreensaver" for more info. The latest version is always ! available at http://www.jwz.org/xscreensaver/ @@ -72,6 +72,7 @@ *sgiSaverExtension: True *xidleExtension: True *procInterrupts: True +*xinputExtensionDev: True ! Set this to True if you are experiencing longstanding XFree86 bug #421 ! (xscreensaver not covering the whole screen) diff --git a/driver/XScreenSaver_ad.h b/driver/XScreenSaver_ad.h index 105d9321..236b90a0 100644 --- a/driver/XScreenSaver_ad.h +++ b/driver/XScreenSaver_ad.h @@ -40,6 +40,7 @@ "*sgiSaverExtension: True", "*xidleExtension: True", "*procInterrupts: True", +"*xinputExtensionDev: True", "GetViewPortIsFullOfLies: False", "*demoCommand: xscreensaver-demo", "*prefsCommand: xscreensaver-demo -prefs", diff --git a/driver/demo-Gtk-conf.c b/driver/demo-Gtk-conf.c index 787e15b8..b9c9479c 100644 --- a/driver/demo-Gtk-conf.c +++ b/driver/demo-Gtk-conf.c @@ -63,7 +63,22 @@ #include "demo-Gtk-conf.h" - +/* Deal with deprecation of direct access to struct fields on the way to GTK3 + See http://live.gnome.org/GnomeGoals/UseGseal + */ +#if GTK_CHECK_VERSION(2,14,0) +# define GET_PARENT(w) gtk_widget_get_parent (w) +# define GET_ADJ_VALUE(a) gtk_adjustment_get_value (a) +# define GET_ADJ_UPPER(a) gtk_adjustment_get_upper (a) +# define GET_ADJ_LOWER(a) gtk_adjustment_get_lower (a) +#else +# define GET_PARENT(w) ((w)->parent) +# define GET_ADJ_VALUE(a) ((a)->value) +# define GET_ADJ_UPPER(a) ((a)->upper) +# define GET_ADJ_LOWER(a) ((a)->lower) +#endif + + extern const char *blurb (void); @@ -815,6 +830,18 @@ insert_fake_hbox (GtkWidget *parent) } +static void +link_atk_label_to_widget(GtkWidget *label, GtkWidget *widget) +{ + AtkObject *atk_label = gtk_widget_get_accessible (label); + AtkObject *atk_widget = gtk_widget_get_accessible (widget); + + atk_object_add_relationship (atk_label, ATK_RELATION_LABEL_FOR, + atk_widget); + atk_object_add_relationship (atk_widget, ATK_RELATION_LABELLED_BY, + atk_label); +} + /* Given a `parameter' struct, allocates an appropriate GtkWidget for it, and stores it in `p->widget'. `parent' must be a GtkBox. @@ -829,10 +856,12 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) { case STRING: { + GtkWidget *entry = gtk_entry_new (); parent = insert_fake_hbox (parent); if (label) { GtkWidget *w = gtk_label_new (_(label)); + link_atk_label_to_widget (w, entry); gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment (GTK_MISC (w), 1.0, 0.5); set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH); @@ -840,7 +869,7 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4); } - p->widget = gtk_entry_new (); + p->widget = entry; if (p->string) gtk_entry_set_text (GTK_ENTRY (p->widget), (char *) p->string); gtk_box_pack_start (GTK_BOX (parent), p->widget, FALSE, FALSE, 4); @@ -851,6 +880,7 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) GtkWidget *L = gtk_label_new (label ? _(label) : ""); GtkWidget *entry = gtk_entry_new (); GtkWidget *button = gtk_button_new_with_label (_("Browse...")); + link_atk_label_to_widget (L, entry); gtk_widget_show (entry); gtk_widget_show (button); p->widget = entry; @@ -882,6 +912,7 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) if (label) { labelw = gtk_label_new (_(label)); + link_atk_label_to_widget (labelw, scale); gtk_label_set_justify (GTK_LABEL (labelw), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (labelw), 0.0, 0.5); set_widget_min_width (GTK_WIDGET (labelw), MIN_LABEL_WIDTH); @@ -895,6 +926,7 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) if (p->low_label) { GtkWidget *w = gtk_label_new (_((char *) p->low_label)); + link_atk_label_to_widget (w, scale); gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment (GTK_MISC (w), 1.0, 0.5); set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH); @@ -914,6 +946,7 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) if (p->high_label) { GtkWidget *w = gtk_label_new (_((char *) p->high_label)); + link_atk_label_to_widget (w, scale); gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (w), 0.0, 0.5); set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH); @@ -930,12 +963,13 @@ make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent) GtkWidget *spin = gtk_spin_button_new (adj, 15, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin), TRUE); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (spin), TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), adj->value); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), GET_ADJ_VALUE(adj)); set_widget_min_width (GTK_WIDGET (spin), MIN_SPINBUTTON_WIDTH); if (label) { GtkWidget *w = gtk_label_new (_(label)); + link_atk_label_to_widget (w, spin); gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment (GTK_MISC (w), 1.0, 0.5); set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH); @@ -1008,8 +1042,8 @@ static void file_sel_cancel (GtkWidget *button, gpointer user_data) { GtkWidget *dialog = button; - while (dialog->parent) - dialog = dialog->parent; + while (GET_PARENT (dialog)) + dialog = GET_PARENT (dialog); gtk_widget_destroy (dialog); } @@ -1020,8 +1054,9 @@ file_sel_ok (GtkWidget *button, gpointer user_data) GtkWidget *entry = GTK_WIDGET (user_data); GtkWidget *dialog = button; const char *path; - while (dialog->parent) - dialog = dialog->parent; + + while (GET_PARENT (dialog)) + dialog = GET_PARENT (dialog); gtk_widget_hide (dialog); path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (dialog)); @@ -1213,8 +1248,9 @@ parameter_to_switch (parameter *p) char buf[255]; char *s1; float value = (p->invert_p - ? invert_range (adj->lower, adj->upper, adj->value) - 1 - : adj->value); + ? invert_range (GET_ADJ_LOWER(adj), GET_ADJ_UPPER(adj), + GET_ADJ_VALUE(adj)) - 1 + : GET_ADJ_VALUE(adj)); if (value == p->value) /* same as default */ return 0; @@ -1575,7 +1611,7 @@ parameter_set_switch (parameter *p, gpointer value) if (1 == sscanf ((char *) value, "%f %c", &f, &c)) { if (p->invert_p) - f = invert_range (adj->lower, adj->upper, f) - 1; + f = invert_range (GET_ADJ_LOWER(adj), GET_ADJ_UPPER(adj), f) - 1; gtk_adjustment_set_value (adj, f); } break; diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c index a62d0b77..28d2925b 100644 --- a/driver/demo-Gtk.c +++ b/driver/demo-Gtk.c @@ -142,6 +142,41 @@ enum { }; #endif /* HAVE_GTK2 */ +/* Deal with deprecation of direct access to struct fields on the way to GTK3 + See http://live.gnome.org/GnomeGoals/UseGseal + */ +#if GTK_CHECK_VERSION(2,14,0) +# define GET_PARENT(w) gtk_widget_get_parent (w) +# define GET_WINDOW(w) gtk_widget_get_window (w) +# define GET_ACTION_AREA(d) gtk_dialog_get_action_area (d) +# define GET_CONTENT_AREA(d) gtk_dialog_get_content_area (d) +# define GET_ADJ_VALUE(a) gtk_adjustment_get_value (a) +# define SET_ADJ_VALUE(a,v) gtk_adjustment_set_value (a, v) +# define SET_ADJ_UPPER(a,v) gtk_adjustment_set_upper (a, v) +#else +# define GET_PARENT(w) ((w)->parent) +# define GET_WINDOW(w) ((w)->window) +# define GET_ACTION_AREA(d) ((d)->action_area) +# define GET_CONTENT_AREA(d) ((d)->vbox) +# define GET_ADJ_VALUE(a) ((a)->value) +# define SET_ADJ_VALUE(a,v) (a)->value = v +# define SET_ADJ_UPPER(a,v) (a)->upper = v +#endif + +#if GTK_CHECK_VERSION(2,18,0) +# define SET_CAN_DEFAULT(w) gtk_widget_set_can_default ((w), TRUE) +# define GET_SENSITIVE(w) gtk_widget_get_sensitive (w) +#else +# define SET_CAN_DEFAULT(w) GTK_WIDGET_SET_FLAGS ((w), GTK_CAN_DEFAULT) +# define GET_SENSITIVE(w) GTK_WIDGET_IS_SENSITIVE (w) +#endif + +#if GTK_CHECK_VERSION(2,20,0) +# define GET_REALIZED(w) gtk_widget_get_realized (w) +#else +# define GET_REALIZED(w) GTK_WIDGET_REALIZED (w) +#endif + /* from exec.c */ extern void exec_command (const char *shell, const char *command, int nice); extern int on_path_p (const char *program); @@ -427,9 +462,9 @@ ensure_selected_item_visible (GtkWidget *widget) adj = gtk_scrolled_window_get_vadjustment (scroller); - gdk_window_get_geometry (GTK_WIDGET(vp)->window, + gdk_window_get_geometry (GET_WINDOW (GTK_WIDGET (vp)), &ignore, &ignore, &ignore, &parent_h, &ignore); - gdk_window_get_geometry (GTK_WIDGET(selected)->window, + gdk_window_get_geometry (GET_WINDOW (GTK_WIDGET (selected)), &ignore, &child_y, &ignore, &child_h, &ignore); children_h = nkids * child_h; @@ -472,8 +507,8 @@ static void warning_dialog_dismiss_cb (GtkWidget *widget, gpointer user_data) { GtkWidget *shell = GTK_WIDGET (user_data); - while (shell->parent) - shell = shell->parent; + while (GET_PARENT (shell)) + shell = GET_PARENT (shell); gtk_widget_destroy (GTK_WIDGET (shell)); } @@ -513,11 +548,11 @@ warning_dialog (GtkWidget *parent, const char *message, GtkWidget *cancel = 0; int i = 0; - while (parent && !parent->window) - parent = parent->parent; + while (parent && !GET_WINDOW (parent)) + parent = GET_PARENT (parent); if (!parent || - !GTK_WIDGET (parent)->window) /* too early to pop up transient dialogs */ + !GET_WINDOW (parent)) /* too early to pop up transient dialogs */ { fprintf (stderr, "%s: too early for dialog?\n", progname); return; @@ -552,7 +587,7 @@ warning_dialog (GtkWidget *parent, const char *message, #endif /* !HAVE_GTK2 */ if (center <= 0) gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), + gtk_box_pack_start (GTK_BOX (GET_CONTENT_AREA (GTK_DIALOG (dialog))), label, TRUE, TRUE, 0); gtk_widget_show (label); } @@ -566,12 +601,12 @@ warning_dialog (GtkWidget *parent, const char *message, } label = gtk_label_new (""); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), + gtk_box_pack_start (GTK_BOX (GET_CONTENT_AREA (GTK_DIALOG (dialog))), label, TRUE, TRUE, 0); gtk_widget_show (label); label = gtk_hbutton_box_new (); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), + gtk_box_pack_start (GTK_BOX (GET_ACTION_AREA (GTK_DIALOG (dialog))), label, TRUE, TRUE, 0); #ifdef HAVE_GTK2 @@ -600,13 +635,13 @@ warning_dialog (GtkWidget *parent, const char *message, gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); gtk_container_set_border_width (GTK_CONTAINER (dialog), 10); gtk_window_set_title (GTK_WINDOW (dialog), progclass); - GTK_WIDGET_SET_FLAGS (ok, GTK_CAN_DEFAULT); + SET_CAN_DEFAULT (ok); gtk_widget_show (ok); gtk_widget_grab_focus (ok); if (cancel) { - GTK_WIDGET_SET_FLAGS (cancel, GTK_CAN_DEFAULT); + SET_CAN_DEFAULT (cancel); gtk_widget_show (cancel); } gtk_widget_show (label); @@ -634,8 +669,8 @@ warning_dialog (GtkWidget *parent, const char *message, (gpointer) dialog); } - gdk_window_set_transient_for (GTK_WIDGET (dialog)->window, - GTK_WIDGET (parent)->window); + gdk_window_set_transient_for (GET_WINDOW (GTK_WIDGET (dialog)), + GET_WINDOW (GTK_WIDGET (parent))); #ifdef HAVE_GTK2 gtk_window_present (GTK_WINDOW (dialog)); @@ -809,11 +844,11 @@ about_menu_cb (GtkMenuItem *menuitem, gpointer user_data) GtkWidget *dialog = gtk_dialog_new (); GtkWidget *hbox, *icon, *vbox, *label1, *label2, *hb, *ok; GtkWidget *parent = GTK_WIDGET (menuitem); - while (parent->parent) - parent = parent->parent; + while (GET_PARENT (parent)) + parent = GET_PARENT (parent); hbox = gtk_hbox_new (FALSE, 20); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), + gtk_box_pack_start (GTK_BOX (GET_CONTENT_AREA (GTK_DIALOG (dialog))), hbox, TRUE, TRUE, 0); colormap = gtk_widget_get_colormap (parent); @@ -854,7 +889,7 @@ about_menu_cb (GtkMenuItem *menuitem, gpointer user_data) hb = gtk_hbutton_box_new (); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), + gtk_box_pack_start (GTK_BOX (GET_ACTION_AREA (GTK_DIALOG (dialog))), hb, TRUE, TRUE, 0); #ifdef HAVE_GTK2 @@ -880,10 +915,10 @@ about_menu_cb (GtkMenuItem *menuitem, gpointer user_data) gtk_signal_connect_object (GTK_OBJECT (ok), "clicked", GTK_SIGNAL_FUNC (warning_dialog_dismiss_cb), (gpointer) dialog); - gdk_window_set_transient_for (GTK_WIDGET (dialog)->window, - GTK_WIDGET (parent)->window); - gdk_window_show (GTK_WIDGET (dialog)->window); - gdk_window_raise (GTK_WIDGET (dialog)->window); + gdk_window_set_transient_for (GET_WINDOW (GTK_WIDGET (dialog)), + GET_WINDOW (GTK_WIDGET (parent))); + gdk_window_show (GET_WINDOW (GTK_WIDGET (dialog))); + gdk_window_raise (GET_WINDOW (GTK_WIDGET (dialog))); } } @@ -1141,7 +1176,7 @@ static void force_list_select_item (state *s, GtkWidget *list, int list_elt, Bool scroll_p) { GtkWidget *parent = name_to_widget (s, "scroller"); - Bool was = GTK_WIDGET_IS_SENSITIVE (parent); + gboolean was = GET_SENSITIVE (parent); #ifdef HAVE_GTK2 GtkTreeIter iter; GtkTreeModel *model; @@ -1771,7 +1806,8 @@ mode_menu_item_cb (GtkWidget *widget, gpointer user_data) GtkWidget *list = name_to_widget (s, "list"); int list_elt; - GList *menu_items = gtk_container_children (GTK_CONTAINER (widget->parent)); + GList *menu_items = + gtk_container_children (GTK_CONTAINER (GET_PARENT (widget))); int menu_index = 0; saver_mode new_mode; @@ -1984,7 +2020,7 @@ list_checkbox_cb ( /* remember previous scroll position of the top of the list */ adj = gtk_scrolled_window_get_vadjustment (scroller); - scroll_top = adj->value; + scroll_top = GET_ADJ_VALUE (adj); flush_dialog_changes_and_save (s); force_list_select_item (s, GTK_WIDGET (list), list_elt, False); @@ -2509,7 +2545,7 @@ populate_hack_list (state *s) (but don't actually make it be insensitive, since we still want to be able to click on it.) */ - GtkStyle *style = GTK_WIDGET (list)->style; + GtkStyle *style = gtk_widget_get_style (GTK_WIDGET (list)); GdkColor *fg = &style->fg[GTK_STATE_INSENSITIVE]; /* GdkColor *bg = &style->bg[GTK_STATE_INSENSITIVE]; */ char *buf = (char *) malloc (strlen (pretty_name) + 100); @@ -2977,7 +3013,7 @@ force_dialog_repaint (state *s) #if 1 /* Tell GDK to invalidate and repaint the whole window. */ - GdkWindow *w = s->toplevel_widget->window; + GdkWindow *w = GET_WINDOW (s->toplevel_widget); GdkRegion *region = gdk_region_new (); GdkRectangle rect; rect.x = rect.y = 0; @@ -3065,7 +3101,7 @@ fix_text_entry_sizes (state *s) #ifdef HAVE_GTK2 PangoFontMetrics *pain = pango_context_get_metrics (gtk_widget_get_pango_context (w), - w->style->font_desc, + gtk_widget_get_style (w)->font_desc, gtk_get_default_language ()); height = PANGO_PIXELS (pango_font_metrics_get_ascent (pain) + pango_font_metrics_get_descent (pain)); @@ -3502,16 +3538,18 @@ clear_preview_window (state *s) { GtkWidget *p; GdkWindow *window; + GtkStyle *style; if (!s->toplevel_widget) return; /* very early */ p = name_to_widget (s, "preview"); - window = p->window; + window = GET_WINDOW (p); if (!window) return; /* Flush the widget background down into the window, in case a subproc has changed it. */ - gdk_window_set_background (window, &p->style->bg[GTK_STATE_NORMAL]); + style = gtk_widget_get_style (p); + gdk_window_set_background (window, &style->bg[GTK_STATE_NORMAL]); gdk_window_clear (window); { @@ -3572,15 +3610,16 @@ reset_preview_window (state *s) when changing hacks, instead of always trying to reuse the same one? */ GtkWidget *pr = name_to_widget (s, "preview"); - if (GTK_WIDGET_REALIZED (pr)) + if (GET_REALIZED (pr)) { - Window oid = (pr->window ? GDK_WINDOW_XWINDOW (pr->window) : 0); + GdkWindow *window = GET_WINDOW (pr); + Window oid = (window ? GDK_WINDOW_XWINDOW (window) : 0); Window id; gtk_widget_hide (pr); gtk_widget_unrealize (pr); gtk_widget_realize (pr); gtk_widget_show (pr); - id = (pr->window ? GDK_WINDOW_XWINDOW (pr->window) : 0); + id = (window ? GDK_WINDOW_XWINDOW (window) : 0); if (s->debug_p) fprintf (stderr, "%s: window id 0x%X -> 0x%X\n", blurb(), (unsigned int) oid, @@ -3605,7 +3644,7 @@ fix_preview_visual (state *s) (visual == dvisual ? "default" : "non-default"), (xvisual ? (unsigned long) xvisual->visualid : 0L)); - if (!GTK_WIDGET_REALIZED (widget) || + if (!GET_REALIZED (widget) || gtk_widget_get_visual (widget) != visual) { gtk_widget_unrealize (widget); @@ -3616,8 +3655,8 @@ fix_preview_visual (state *s) /* Set the Widget colors to be white-on-black. */ { - GdkWindow *window = widget->window; - GtkStyle *style = gtk_style_copy (widget->style); + GdkWindow *window = GET_WINDOW (widget); + GtkStyle *style = gtk_style_copy (gtk_widget_get_style (widget)); GdkColormap *cmap = gtk_widget_get_colormap (widget); GdkColor *fg = &style->fg[GTK_STATE_NORMAL]; GdkColor *bg = &style->bg[GTK_STATE_NORMAL]; @@ -3880,7 +3919,7 @@ launch_preview_subproc (state *s) reset_preview_window (s); - window = pr->window; + window = GET_WINDOW (pr); s->running_preview_error_p = False; @@ -5155,7 +5194,7 @@ main (int argc, char **argv) { GtkWidget *window = capplet; while (window && !GTK_IS_WINDOW (window)) - window = window->parent; + window = GET_PARENT (window); if (window) { gtk_window_set_title (GTK_WINDOW (window), window_title); @@ -5190,7 +5229,7 @@ main (int argc, char **argv) #endif gtk_widget_show (s->toplevel_widget); - init_icon (GTK_WIDGET (s->toplevel_widget)->window); /* after `show' */ + init_icon (GET_WINDOW (GTK_WIDGET (s->toplevel_widget))); /* after `show' */ fix_preview_visual (s); /* Realize page zero, so that we can diddle the scrollbar when the diff --git a/driver/lock.c b/driver/lock.c index 2f3108c1..2886115d 100644 --- a/driver/lock.c +++ b/driver/lock.c @@ -45,6 +45,9 @@ static void xfree_lock_grab_smasher (saver_info *si, Bool lock_p); #endif /* HAVE_XF86MISCSETGRABKEYSSTATE */ +#ifdef HAVE_RANDR +# include +#endif /* HAVE_RANDR */ #ifdef _VROOT_H_ ERROR! You must not include vroot.h in this file. @@ -1285,11 +1288,20 @@ destroy_passwd_window (saver_info *si) XWarpPointer (si->dpy, None, RootWindowOfScreen (ssi->screen), 0, 0, 0, 0, pw->previous_mouse_x, pw->previous_mouse_y); + XSync (si->dpy, False); while (XCheckMaskEvent (si->dpy, PointerMotionMask, &event)) if (p->verbose_p) fprintf (stderr, "%s: discarding MotionNotify event.\n", blurb()); +#ifdef HAVE_XINPUT + if (si->using_xinput_extension && si->xinput_DeviceMotionNotify) + while (XCheckTypedEvent (si->dpy, si->xinput_DeviceMotionNotify, &event)) + if (p->verbose_p) + fprintf (stderr, "%s: discarding DeviceMotionNotify event.\n", + blurb()); +#endif + if (si->passwd_dialog) { if (si->prefs.verbose_p) @@ -1775,30 +1787,77 @@ passwd_event_loop (saver_info *si) { saver_preferences *p = &si->prefs; char *msg = 0; - XEvent event; + + /* We have to go through this union bullshit because gcc-4.4.0 has + stricter struct-aliasing rules. Without this, the optimizer + can fuck things up. + */ + union { + XEvent x_event; +# ifdef HAVE_RANDR + XRRScreenChangeNotifyEvent xrr_event; +# endif /* HAVE_RANDR */ + } event; passwd_animate_timer ((XtPointer) si, 0); while (si->unlock_state == ul_read) { - XtAppNextEvent (si->app, &event); - if (event.xany.window == si->passwd_dialog && event.xany.type == Expose) + XtAppNextEvent (si->app, &event.x_event); + +#ifdef HAVE_RANDR + if (si->using_randr_extension && + (event.x_event.type == + (si->randr_event_number + RRScreenChangeNotify))) + { + /* The Resize and Rotate extension sends an event when the + size, rotation, or refresh rate of any screen has changed. */ + + if (p->verbose_p) + { + /* XRRRootToScreen is in Xrandr.h 1.4, 2001/06/07 */ + int screen = XRRRootToScreen(si->dpy, event.xrr_event.window); + fprintf (stderr, "%s: %d: screen change event received\n", + blurb(), screen); + } + +#ifdef RRScreenChangeNotifyMask + /* Inform Xlib that it's ok to update its data structures. */ + XRRUpdateConfiguration(&event.x_event); /* Xrandr.h 1.9, 2002/09/29 */ +#endif /* RRScreenChangeNotifyMask */ + + /* Resize the existing xscreensaver windows and cached ssi data. */ + if (update_screen_layout (si)) + { + if (p->verbose_p) + { + fprintf (stderr, "%s: new layout:\n", blurb()); + describe_monitor_layout (si); + } + resize_screensaver_window (si); + } + } + else +#endif /* HAVE_RANDR */ + + if (event.x_event.xany.window == si->passwd_dialog && + event.x_event.xany.type == Expose) draw_passwd_window (si); - else if (event.xany.type == KeyPress) + else if (event.x_event.xany.type == KeyPress) { - handle_passwd_key (si, &event.xkey); - si->pw_data->caps_p = (event.xkey.state & LockMask); + handle_passwd_key (si, &event.x_event.xkey); + si->pw_data->caps_p = (event.x_event.xkey.state & LockMask); } - else if (event.xany.type == ButtonPress || - event.xany.type == ButtonRelease) + else if (event.x_event.xany.type == ButtonPress || + event.x_event.xany.type == ButtonRelease) { si->pw_data->button_state_changed_p = True; - handle_unlock_button (si, &event); + handle_unlock_button (si, &event.x_event); if (si->pw_data->login_button_p) - handle_login_button (si, &event); + handle_login_button (si, &event.x_event); } else - XtDispatchEvent (&event); + XtDispatchEvent (&event.x_event); } switch (si->unlock_state) @@ -1880,11 +1939,10 @@ remove_trailing_whitespace(const char *str) len = strlen(str); newstr = malloc(len + 1); - (void) strcpy(newstr, str); - if (!newstr) return NULL; + (void) strcpy(newstr, str); chr = newstr + len; while (isspace(*--chr) && chr >= newstr) *chr = '\0'; diff --git a/driver/prefs.c b/driver/prefs.c index 1b093148..1df87728 100644 --- a/driver/prefs.c +++ b/driver/prefs.c @@ -302,6 +302,7 @@ static const char * const prefs[] = { "xidleExtension", "GetViewPortIsFullOfLies", "procInterrupts", + "xinputExtensionDev", "overlayStderr", "overlayTextBackground", /* not saved -- X resources only */ "overlayTextForeground", /* not saved -- X resources only */ @@ -854,6 +855,7 @@ write_init_file (Display *dpy, CHECK("mitSaverExtension") continue; /* don't save */ CHECK("xidleExtension") type = pref_bool, b = p->use_xidle_extension; CHECK("procInterrupts") type = pref_bool, b = p->use_proc_interrupts; + CHECK("xinputExtensionDev") type = pref_bool, b = p->use_xinput_extension; CHECK("GetViewPortIsFullOfLies") type = pref_bool, b = p->getviewport_full_of_lies_p; CHECK("overlayStderr") type = pref_bool, b = overlay_stderr_p; @@ -1124,6 +1126,10 @@ load_init_file (Display *dpy, saver_preferences *p) p->use_sgi_saver_extension = get_boolean_resource (dpy, "sgiSaverExtension", "Boolean"); + + p->use_xinput_extension = get_boolean_resource (dpy, "xinputExtensionDev", + "Boolean"); + p->use_proc_interrupts = get_boolean_resource (dpy, "procInterrupts", "Boolean"); diff --git a/driver/remote.c b/driver/remote.c index 1e67c973..775036ac 100644 --- a/driver/remote.c +++ b/driver/remote.c @@ -380,7 +380,22 @@ xscreensaver_command_response (Display *dpy, Window window, &xscreensaver_command_event_p, 0)) && sleep_count++ < 10) { +# if defined(HAVE_SELECT) + /* Wait for an event, but don't wait longer than 1 sec. Note that we + might do this multiple times if an event comes in, but it wasn't + the event we're waiting for. + */ + int fd = XConnectionNumber(dpy); + fd_set rset; + struct timeval tv; + tv.tv_sec = 1; + tv.tv_usec = 0; + FD_ZERO (&rset); + FD_SET (fd, &rset); + select (fd+1, &rset, 0, 0, &tv); +# else /* !HAVE_SELECT */ sleep(1); +# endif /* !HAVE_SELECT */ } if (!got_event) diff --git a/driver/subprocs.c b/driver/subprocs.c index 405a382b..fb621cde 100644 --- a/driver/subprocs.c +++ b/driver/subprocs.c @@ -1179,6 +1179,8 @@ get_best_gl_visual (saver_info *si, Screen *screen) pid_t forked; int fds [2]; int in, out; + int errfds[2]; + int errin = -1, errout = -1; char buf[1024]; char *av[10]; @@ -1196,6 +1198,18 @@ get_best_gl_visual (saver_info *si, Screen *screen) in = fds [0]; out = fds [1]; + if (!si->prefs.verbose_p) + { + if (pipe (errfds)) + { + perror ("error creating pipe:"); + return 0; + } + + errin = errfds [0]; + errout = errfds [1]; + } + block_sigchld(); /* This blocks it in the parent and child, to avoid racing. It is never unblocked in the child before the child exits, but that doesn't matter. @@ -1211,16 +1225,25 @@ get_best_gl_visual (saver_info *si, Screen *screen) } case 0: { - int stdout_fd = 1; - close (in); /* don't need this one */ close (ConnectionNumber (si->dpy)); /* close display fd */ - if (dup2 (out, stdout_fd) < 0) /* pipe stdout */ + if (dup2 (out, STDOUT_FILENO) < 0) /* pipe stdout */ { perror ("could not dup() a new stdout:"); return 0; } + + if (! si->prefs.verbose_p) + { + close(errin); + if (dup2 (errout, STDERR_FILENO) < 0) + { + perror ("could not dup() a new stderr:"); + return 0; + } + } + hack_subproc_environment (screen, 0); /* set $DISPLAY */ execvp (av[0], av); /* shouldn't return. */ @@ -1251,6 +1274,12 @@ get_best_gl_visual (saver_info *si, Screen *screen) *buf = 0; fclose (f); + if (! si->prefs.verbose_p) + { + close (errout); + close (errin); + } + /* Wait for the child to die. */ waitpid (-1, &wait_status, 0); diff --git a/driver/test-passwd.c b/driver/test-passwd.c index 42e2e280..fe0dedb3 100644 --- a/driver/test-passwd.c +++ b/driver/test-passwd.c @@ -60,6 +60,9 @@ int move_mouse_grab (saver_info *si, Window to, Cursor c, int ts) { return 0; } int mouse_screen (saver_info *si) { return 0; } void check_for_leaks (const char *where) { } void shutdown_stderr (saver_info *si) { } +void resize_screensaver_window (saver_info *si) { } +void describe_monitor_layout (saver_info *si) { } +Bool update_screen_layout (saver_info *si) { return 0; } const char *blurb(void) { return progname; } Atom XA_SCREENSAVER, XA_DEMO, XA_PREFS; diff --git a/driver/timers.c b/driver/timers.c index 97a26c02..b079492c 100644 --- a/driver/timers.c +++ b/driver/timers.c @@ -709,7 +709,8 @@ sleep_until_idle (saver_info *si, Bool until_idle_p) Bool polling_mouse_position = (si->using_proc_interrupts || !(si->using_xidle_extension || si->using_mit_saver_extension || - si->using_sgi_saver_extension)); + si->using_sgi_saver_extension) || + si->using_xinput_extension); if (until_idle_p) { @@ -1025,8 +1026,32 @@ sleep_until_idle (saver_info *si, Bool until_idle_p) else #endif /* HAVE_SGI_SAVER_EXTENSION */ +#ifdef HAVE_XINPUT + if ((!until_idle_p) && (si->num_xinput_devices > 0) && + (event.x_event.type == si->xinput_DeviceMotionNotify || + event.x_event.type == si->xinput_DeviceButtonPress || + event.x_event.type == si->xinput_DeviceButtonRelease )) + { + + dispatch_event (si, &event.x_event); + if (si->demoing_p && + (event.x_event.type == si->xinput_DeviceMotionNotify || + event.x_event.type == si->xinput_DeviceButtonRelease) ) + /* When we're demoing a single hack, mouse motion doesn't + cause deactivation. Only clicks and keypresses do. */ + ; + else + /* If we're not demoing, then any activity causes deactivation. + */ + goto DONE; + } + else +#endif /* HAVE_XINPUT */ + #ifdef HAVE_RANDR - if (event.x_event.type == (si->randr_event_number + RRScreenChangeNotify)) + if (si->using_randr_extension && + (event.x_event.type == + (si->randr_event_number + RRScreenChangeNotify))) { /* The Resize and Rotate extension sends an event when the size, rotation, or refresh rate of any screen has changed. diff --git a/driver/types.h b/driver/types.h index 63ac39ec..63bec258 100644 --- a/driver/types.h +++ b/driver/types.h @@ -131,6 +131,7 @@ struct saver_preferences { Bool use_mit_saver_extension; Bool use_sgi_saver_extension; Bool use_proc_interrupts; + Bool use_xinput_extension; Bool getviewport_full_of_lies_p; /* XFree86 bug #421 */ @@ -188,8 +189,20 @@ struct saver_info { # ifdef HAVE_RANDR int randr_event_number; int randr_error_number; + Bool using_randr_extension; # endif + Bool using_xinput_extension; /* Note that `p->use_*' is the *request*, */ + /* and `si->using_*' is the *reality*. */ +#ifdef HAVE_XINPUT + int xinput_ext_event_number; /* may not be used */ + int xinput_ext_error_number; + int xinput_DeviceButtonPress; /* Extension device event codes. */ + int xinput_DeviceButtonRelease; /* Assigned by server at runtime */ + int xinput_DeviceMotionNotify; + struct xinput_dev_info *xinput_devices; + int num_xinput_devices; +# endif /* ======================================================================= blanking diff --git a/driver/xscreensaver-demo.glade2 b/driver/xscreensaver-demo.glade2 index d1c782a0..66de564d 100644 --- a/driver/xscreensaver-demo.glade2 +++ b/driver/xscreensaver-demo.glade2 @@ -189,6 +189,10 @@ -1 False 0 + + + + 1 @@ -218,6 +222,12 @@ False False True + + Lock Screen + + + + @@ -244,6 +254,12 @@ True False 1 1 720 1 15 15 + + + + + + @@ -270,6 +286,14 @@ True False 0 0 720 1 15 15 + + Lock Screen After + + + + + + @@ -297,6 +321,12 @@ True False 0 0 720 1 15 15 + + + + + + @@ -328,6 +358,10 @@ -1 False 0 + + + + 3 @@ -355,6 +389,10 @@ -1 False 0 + + + + 3 @@ -366,57 +404,65 @@ - + True - minutes - False + _Blank After + True False - GTK_JUSTIFY_LEFT + GTK_JUSTIFY_RIGHT False False - 0 + 1 0.5 8 0 + timeout_spinbutton PANGO_ELLIPSIZE_NONE -1 False 0 + + + + - 3 - 4 + 1 + 2 0 1 + fill - + True - _Blank After - True + minutes + False False - GTK_JUSTIFY_RIGHT + GTK_JUSTIFY_LEFT False False - 1 + 0 0.5 8 0 - timeout_spinbutton PANGO_ELLIPSIZE_NONE -1 False 0 + + + + - 1 - 2 + 3 + 4 0 1 - fill @@ -506,6 +552,9 @@ -1 False 0 + + + 0 @@ -519,6 +568,9 @@ True True 0 + + + @@ -713,6 +765,9 @@ 0 0.5 GTK_SHADOW_ETCHED_IN + + + @@ -936,6 +991,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + label_item @@ -999,6 +1057,9 @@ This probably means that the "xscreensaver-extras" and 0 0.5 GTK_SHADOW_ETCHED_IN + + + @@ -1083,6 +1144,10 @@ This probably means that the "xscreensaver-extras" and False False True + + + + @@ -1135,6 +1200,10 @@ This probably means that the "xscreensaver-extras" and True * False + + + + @@ -1195,6 +1264,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + label_item @@ -1216,6 +1288,9 @@ This probably means that the "xscreensaver-extras" and 0 0.5 GTK_SHADOW_ETCHED_IN + + + @@ -1261,6 +1336,10 @@ This probably means that the "xscreensaver-extras" and False False True + + + + @@ -1286,6 +1365,10 @@ This probably means that the "xscreensaver-extras" and False True text_radio + + + + @@ -1311,6 +1394,11 @@ This probably means that the "xscreensaver-extras" and False True text_radio + + + + + @@ -1336,6 +1424,10 @@ This probably means that the "xscreensaver-extras" and False True text_radio + + + + @@ -1385,6 +1477,9 @@ This probably means that the "xscreensaver-extras" and True * False + + + @@ -1405,6 +1500,9 @@ This probably means that the "xscreensaver-extras" and True GTK_RELIEF_NORMAL True + + + @@ -1429,6 +1527,10 @@ This probably means that the "xscreensaver-extras" and True * False + + + + @@ -1453,6 +1555,10 @@ This probably means that the "xscreensaver-extras" and True * False + + + + @@ -1473,6 +1579,9 @@ This probably means that the "xscreensaver-extras" and True GTK_RELIEF_NORMAL True + + + @@ -1497,6 +1606,10 @@ This probably means that the "xscreensaver-extras" and True * False + + + + @@ -1535,6 +1648,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + label_item @@ -1599,6 +1715,11 @@ This probably means that the "xscreensaver-extras" and True False True + + + + + @@ -1635,6 +1756,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 0 @@ -1664,6 +1789,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 0 @@ -1693,6 +1822,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 0 @@ -1721,6 +1854,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 2 @@ -1749,6 +1886,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 2 @@ -1777,6 +1918,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 2 @@ -1800,6 +1945,13 @@ This probably means that the "xscreensaver-extras" and True False 0 0 1440 1 15 15 + + + + + + + @@ -1826,6 +1978,13 @@ This probably means that the "xscreensaver-extras" and True False 0 0 1440 1 15 15 + + + + + + + @@ -1852,6 +2011,13 @@ This probably means that the "xscreensaver-extras" and True False 0 0 1440 1 15 15 + + + + + + + @@ -1899,6 +2065,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + label_item @@ -1921,6 +2090,9 @@ This probably means that the "xscreensaver-extras" and 0 0.5 GTK_SHADOW_ETCHED_IN + + + @@ -1963,6 +2135,9 @@ This probably means that the "xscreensaver-extras" and False False True + + + @@ -1984,6 +2159,9 @@ This probably means that the "xscreensaver-extras" and False False True + + + @@ -2042,6 +2220,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 14 @@ -2062,6 +2244,14 @@ This probably means that the "xscreensaver-extras" and True False 0 0 10 1 1 1 + + + + + + + + @@ -2090,6 +2280,10 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + + 2 @@ -2163,6 +2357,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + label_item @@ -2383,6 +2580,9 @@ This probably means that the "xscreensaver-extras" and 0 0 GTK_SHADOW_ETCHED_IN + + + @@ -2482,6 +2682,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + 1 @@ -2504,6 +2707,9 @@ This probably means that the "xscreensaver-extras" and True * False + + + 1 @@ -2538,6 +2744,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + 0 @@ -2554,6 +2763,9 @@ This probably means that the "xscreensaver-extras" and False True False + + + @@ -2745,6 +2957,9 @@ This probably means that the "xscreensaver-extras" and -1 False 0 + + + label_item diff --git a/driver/xscreensaver-text b/driver/xscreensaver-text index 6c0b63d4..24149408 100755 --- a/driver/xscreensaver-text +++ b/driver/xscreensaver-text @@ -30,7 +30,7 @@ use Text::Wrap qw(wrap); use bytes; my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.21 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.22 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $verbose = 0; my $http_proxy = undef; @@ -900,6 +900,42 @@ sub main() { } output(); + + + if (defined ($cocoa_id)) { + # + # On MacOS, sleep for 10 seconds between when the last output is + # printed, and when this process exits. This is because MacOS + # 10.5.0 and later broke ptys in a new and exciting way: basically, + # once the process at the end of the pty exits, you have exactly + # 1 second to read all the queued data off the pipe before it is + # summarily flushed. + # + # Many of the screen savers were written to depend on being able + # to read a small number of bytes, and continue reading until they + # reached EOF. This is no longer possible. + # + # Note that the current MacOS behavior has all three of these + # awesome properties: 1) Inconvenient; 2) Has no sane workaround; + # 3) Different behavior than MacOS 10.1 through 10.4; and 4) + # Different behavior than every other Unix in the world. + # + # See http://jwz.livejournal.com/817438.html, and for those of + # you inside Apple, "Problem ID 5606018". + # + # One workaround would be to rewrite the savers to have an + # internal buffer, and always read as much data as possible as + # soon as a pipe has input available. However, that's a lot more + # work, so instead, let's just not exit right away, and hope that + # 10 seconds is enough. + # + # This will solve the problem for invocations of xscreensaver-text + # that produce little output (e.g., date-mode); and won't solve it + # in cases where a large amount of text is generated in a short + # amount of time (e.g., url-mode.) + # + sleep (10); + } } main(); diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c index c092777c..70bb9542 100644 --- a/driver/xscreensaver.c +++ b/driver/xscreensaver.c @@ -144,6 +144,11 @@ #include #include +#ifdef ENABLE_NLS +# include +# include +#endif /* ENABLE_NLS */ + #include #include @@ -860,12 +865,14 @@ initialize_server_extensions (saver_info *si) Bool server_has_sgi_saver_extension_p = False; Bool server_has_mit_saver_extension_p = False; Bool system_has_proc_interrupts_p = False; + Bool server_has_xinput_extension_p = False; const char *piwhy = 0; si->using_xidle_extension = p->use_xidle_extension; si->using_sgi_saver_extension = p->use_sgi_saver_extension; si->using_mit_saver_extension = p->use_mit_saver_extension; si->using_proc_interrupts = p->use_proc_interrupts; + si->using_xinput_extension = p->use_xinput_extension; #ifdef HAVE_XIDLE_EXTENSION { @@ -889,6 +896,10 @@ initialize_server_extensions (saver_info *si) system_has_proc_interrupts_p = query_proc_interrupts_available (si, &piwhy); #endif +#ifdef HAVE_XINPUT + server_has_xinput_extension_p = query_xinput_extension (si); +#endif + if (!server_has_xidle_extension_p) si->using_xidle_extension = False; else if (p->verbose_p) @@ -931,6 +942,8 @@ initialize_server_extensions (saver_info *si) int nscreens = ScreenCount (si->dpy); /* number of *real* screens */ int i; + si->using_randr_extension = TRUE; + if (p->verbose_p) fprintf (stderr, "%s: selecting RANDR events\n", blurb()); for (i = 0; i < nscreens; i++) @@ -943,6 +956,28 @@ initialize_server_extensions (saver_info *si) } # endif /* HAVE_RANDR */ +#ifdef HAVE_XINPUT + if (!server_has_xinput_extension_p) + si->using_xinput_extension = False; + else + { + if (si->using_xinput_extension) + init_xinput_extension(si); + + if (p->verbose_p) + { + if (si->using_xinput_extension) + fprintf (stderr, + "%s: selecting events from %d XInputExtension devices.\n", + blurb(), si->num_xinput_devices); + else + fprintf (stderr, + "%s: not using XInputExtension.\n", + blurb()); + } + } +#endif + if (!system_has_proc_interrupts_p) { si->using_proc_interrupts = False; @@ -1347,6 +1382,14 @@ main (int argc, char **argv) struct passwd *spasswd; int i; +#ifdef ENABLE_NLS + if (!setlocale (LC_ALL, "")) + fprintf (stderr, "locale not supported by C library\n"); + + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + textdomain (GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ + memset(si, 0, sizeof(*si)); global_si_kludge = si; /* I hate C so much... */ @@ -2133,6 +2176,8 @@ analyze_display (saver_info *si) True, 0 }, { "Apple-DRI", "Apple-DRI (XDarwin)", True, 0 + }, { "XInputExtension", "XInput", + True, 0 }, }; diff --git a/driver/xscreensaver.h b/driver/xscreensaver.h index 09f5ea94..29b9ebd1 100644 --- a/driver/xscreensaver.h +++ b/driver/xscreensaver.h @@ -46,6 +46,11 @@ extern Bool ensure_no_screensaver_running (Display *, Screen *); extern Bool query_proc_interrupts_available (saver_info *, const char **why); #endif +#ifdef HAVE_XINPUT +extern Bool query_xinput_extension (saver_info *); +extern void init_xinput_extension (saver_info *si); +#endif + /* Display Power Management System (DPMS) interface. */ extern Bool monitor_powered_on_p (saver_info *si); extern void monitor_power_on (saver_info *si); diff --git a/driver/xset.c b/driver/xset.c index 8378e1cf..46607977 100644 --- a/driver/xset.c +++ b/driver/xset.c @@ -85,6 +85,180 @@ init_mit_saver_extension (saver_info *si) } #endif /* HAVE_MIT_SAVER_EXTENSION */ + +#ifdef HAVE_XINPUT +/* XInputExtension device support */ +#include + +struct xinput_dev_info { + XDevice *device; + XEventClass press, release, valuator; +}; + +Bool +query_xinput_extension (saver_info *si) +{ + XExtCodes codes; + + if (!XQueryExtension (si->dpy, INAME, &codes.major_opcode, + &codes.first_event, &codes.first_error)) + { + if (si->prefs.verbose_p) + fprintf (stderr, "\t XInputExtension is not present!\n"); + return False; + } + else + { + if (si->prefs.verbose_p) + fprintf (stderr, "\t XInputExtension is present!\n"); + return True; + } +} + +void +init_xinput_extension (saver_info *si) +{ + int i, ndevices; + int class; + XDeviceInfo *list; + XDevice *dev; + XAnyClassPtr pClass; + XEventClass *event_list; + int nevents = 0; + + /* skip if already initialized */ + if (si->num_xinput_devices && si->xinput_devices) + return; + + si->num_xinput_devices = 0; + + list = XListInputDevices (si->dpy, &ndevices); + if (list == NULL) + { + si->xinput_devices = NULL; + return; + } + + /* We only care about 3 event types per device (DeviceButtonPress, + DeviceButtonRelease, and DeviceMotionNotify), hence the "* 3" + for the event count. */ + event_list = calloc(ndevices * 3, sizeof(XEventClass)); + if (event_list == NULL) + return; + + si->xinput_devices = calloc(ndevices, sizeof(struct xinput_dev_info)); + if (si->xinput_devices == NULL) + { + free(event_list); + return; + } + + for (i = 0; i < ndevices; i++) + { + if ((list[i].use == IsXExtensionDevice) +#ifdef IsXExtensionPointer + || (list[i].use == IsXExtensionPointer) +#endif + ) + { + struct xinput_dev_info *dev_info = + &si->xinput_devices[si->num_xinput_devices]; + Bool device_we_want = False; + + if (si->prefs.debug_p) + fprintf(stderr, + "Extension device #%2d: XID=%2d type=%3d name=\"%s\"\n", + i, (int) list[i].id, (int) list[i].type, list[i].name); + + dev = XOpenDevice (si->dpy, list[i].id); + if (!dev) + continue; + dev_info->device = dev; + + pClass = list[i].inputclassinfo; + for (class = 0; class < list[i].num_classes; class++) + { + switch (pClass->class) + { + case ButtonClass: + if (((XButtonInfo *) pClass)->num_buttons > 0) + { + /* Macros set values in the second & third arguments */ + DeviceButtonPress (dev, si->xinput_DeviceButtonPress, + dev_info->press); + event_list[nevents++] = dev_info->press; + + DeviceButtonRelease (dev, si->xinput_DeviceButtonRelease, + dev_info->release); + event_list[nevents++] = dev_info->release; + device_we_want = True; + } + break; + + case ValuatorClass: + if (((XValuatorInfo *) pClass)->num_axes > 0) + { + DeviceMotionNotify (dev, si->xinput_DeviceMotionNotify, + dev_info->valuator); + event_list[nevents++] = dev_info->valuator; + device_we_want = True; + } + break; + + default: + /* ignore other classes of devices/events */ + break; + } + + pClass = (XAnyClassPtr) & ((char *) pClass)[pClass->length]; + } + + if (device_we_want) + si->num_xinput_devices++; + else + XCloseDevice (si->dpy, dev); + } + } + + if (list) + XFreeDeviceList (list); + + if ((nevents == 0) || (si->num_xinput_devices == 0)) + { + free(event_list); + free(si->xinput_devices); + si->xinput_devices = NULL; + si->num_xinput_devices = 0; + return; + } + + for (i = 0; i < si->nscreens; i++) + { + saver_screen_info *ssi = &si->screens[i]; + Window root = RootWindowOfScreen (ssi->screen); + XSelectExtensionEvent (si->dpy, root, event_list, nevents); + } + + free(event_list); +} + +#if 0 +/* not used */ +static void +close_xinput_extension (saver_info *si) +{ + int i; + + for (i = 0; i < si->num_xinput_devices; i++) + XCloseDevice (si->dpy, si->xinput_devices[i].device); + + free(si->xinput_devices); + si->xinput_devices = NULL; + si->num_xinput_devices = 0; +} +#endif +#endif /* HAVE_XINPUT */ + /* SGI SCREEN_SAVER server extension hackery. */ diff --git a/hacks/._barcode.c b/hacks/._barcode.c new file mode 100644 index 0000000000000000000000000000000000000000..8d4844798ec0fecf28d92c611bd46bd7fa23a140 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62ve&;R#SFNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`%`W6BJ literal 0 HcmV?d00001 diff --git a/hacks/._celtic.c b/hacks/._celtic.c new file mode 100644 index 0000000000000000000000000000000000000000..797e674fc99cd2a45ee0261121970bdb93bda74b GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62ve&@g`6yNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`!$Vqox1Ojhs@R)|o50+1L3ClDI}aVZdk_{)Kq2;dkJ62vgOj0LC^q+<>c vbE9cvM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`e@CMIX*mE;#^SQ`KU;V2c- literal 0 HcmV?d00001 diff --git a/hacks/._eruption.c b/hacks/._eruption.c new file mode 100644 index 0000000000000000000000000000000000000000..dfdbea5d6a05055866d9d7ede4e3eddd61301adf GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62ve&c^^$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO>?BYrNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`$g%$k( literal 0 HcmV?d00001 diff --git a/hacks/._interaggregate.c b/hacks/._interaggregate.c new file mode 100644 index 0000000000000000000000000000000000000000..51c19b886e4fdc57fc66543e1c1b1b97972449c4 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62ve&Z6Z)9NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`gJr%V8 literal 0 HcmV?d00001 diff --git a/hacks/._noseguy.c b/hacks/._noseguy.c new file mode 100644 index 0000000000000000000000000000000000000000..82a33906805fd3da1ee7b67aa68b1b021a027dd2 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62ve&%Mz#*q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|;RTW_X literal 0 HcmV?d00001 diff --git a/hacks/._petri.c b/hacks/._petri.c new file mode 100644 index 0000000000000000000000000000000000000000..22a5a2ff278a734a454359b41ae4de1fa57b1fb5 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62ve&#~P>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOKnc y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|)SQS(N literal 0 HcmV?d00001 diff --git a/hacks/._slidescreen.c b/hacks/._slidescreen.c new file mode 100644 index 0000000000000000000000000000000000000000..3d50a0927447cd17aaaa4df0c0dfcfe8a24bd6c2 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOAPT4yq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|~WEF@2 literal 0 HcmV?d00001 diff --git a/hacks/._webcollage-helper-cocoa.m b/hacks/._webcollage-helper-cocoa.m new file mode 100644 index 0000000000000000000000000000000000000000..8b7e2faea178ab1d03ede47db898d430fca2bff6 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO*cPZ1q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|?VHIuw literal 0 HcmV?d00001 diff --git a/hacks/._zoom.c b/hacks/._zoom.c new file mode 100644 index 0000000000000000000000000000000000000000..8998fefdf7cf55228171ffa14e5e6472c9dcf1d7 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO)C;H-q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|{1QmS% literal 0 HcmV?d00001 diff --git a/hacks/analogtv.c b/hacks/analogtv.c index bb334650..63368f5f 100644 --- a/hacks/analogtv.c +++ b/hacks/analogtv.c @@ -839,7 +839,7 @@ analogtv_setup_frame(analogtv *it) } hnc += hni + (int)(random()%65536)-32768; } - hnc -= (ANALOGTV_V * ANALOGTV_H)<<8; +/* hnc -= (ANALOGTV_V * ANALOGTV_H)<<8;*/ } if (it->rx_signal_level != 0.0) @@ -900,7 +900,7 @@ analogtv_sync(analogtv *it) double *sp; double cbfc=1.0/128.0; - sp = it->rx_signal + lineno*ANALOGTV_H + cur_hsync; +/* sp = it->rx_signal + lineno*ANALOGTV_H + cur_hsync;*/ for (i=-32; i<32; i++) { lineno = (cur_vsync + i + ANALOGTV_V) % ANALOGTV_V; sp = it->rx_signal + lineno*ANALOGTV_H; @@ -1182,7 +1182,7 @@ analogtv_draw(analogtv *it) float *rgb_start, *rgb_end; double pixbright; int pixmultinc; - int bigloadchange,drawcount; + int /*bigloadchange,*/drawcount; double baseload; double puheight; int overall_top, overall_bot; @@ -1207,7 +1207,7 @@ analogtv_draw(analogtv *it) baseload=0.5; /* if (it->hashnoise_on) baseload=0.5; */ - bigloadchange=1; + /*bigloadchange=1;*/ drawcount=0; it->crtload[ANALOGTV_TOP-1]=baseload; puheight = puramp(it, 2.0, 1.0, 1.3) * it->height_control * @@ -1244,7 +1244,7 @@ analogtv_draw(analogtv *it) if (lineno==it->shrinkpulse) { baseload += 0.4; - bigloadchange=1; + /*bigloadchange=1;*/ it->shrinkpulse=-1; } @@ -1297,7 +1297,7 @@ analogtv_draw(analogtv *it) { int totsignal=0; - double ncl,diff; + double ncl/*,diff*/; for (i=0; i184 ? (slineno-184)*(lineno-184)*0.001 * it->squeezebottom : 0.0)); - diff=ncl - it->crtload[lineno]; - bigloadchange = (diff>0.01 || diff<-0.01); + /*diff=ncl - it->crtload[lineno];*/ + /*bigloadchange = (diff>0.01 || diff<-0.01);*/ it->crtload[lineno]=ncl; } diff --git a/hacks/anemone.c b/hacks/anemone.c index 652e4770..0cf342ea 100644 --- a/hacks/anemone.c +++ b/hacks/anemone.c @@ -152,8 +152,6 @@ initAppendages(struct state *st) st->aCurr->growth = st->finpoints / 2 + RND(st->finpoints / 2); st->aCurr->rate = RND(11) * RND(11); - dist = 1.; - do { x = (1 - RND(1001) / 500); y = (1 - RND(1001) / 500); diff --git a/hacks/apple2-main.c b/hacks/apple2-main.c index facaf717..fcb7aee0 100644 --- a/hacks/apple2-main.c +++ b/hacks/apple2-main.c @@ -279,7 +279,6 @@ a2_dither (unsigned int *in, unsigned char *out, int w, int h) long *temp_err; int fs_scale = 1024; int brightness = 75; - int fs_direction; #if 0 { @@ -320,7 +319,6 @@ a2_dither (unsigned int *in, unsigned char *out, int w, int h) this_berr[x] = random() % (fs_scale * 2) - fs_scale; /* (random errors in [-1 .. 1]) */ } - fs_direction = 1; for (y = 0; y < h; y++) for (x = 0; x < w; x++) @@ -708,7 +706,7 @@ static void slideshow_controller(apple2_sim_t *sim, int *stepno, basename = slash+1; } { - char *dot=strchr(basename,'.'); + char *dot=strrchr(basename,'.'); if (dot) *dot=0; } if (strlen(basename)>20) basename[20]=0; diff --git a/hacks/asm6502.c b/hacks/asm6502.c index 90eed8d1..af0a9341 100644 --- a/hacks/asm6502.c +++ b/hacks/asm6502.c @@ -94,45 +94,16 @@ typedef struct { Bit16 value; } Pointer; -/* eprintf - Taken from "Practice of Programming" by Kernighan and Pike */ -static void eprintf(char *fmt, ...){ - va_list args; - - char *progname = "Assembler"; - - fflush(stdout); - if (progname != NULL) - fprintf(stderr, "%s: ", progname); - - va_start(args, fmt); - vfprintf(stderr, fmt, args); - va_end(args); - - if (fmt[0] != '\0' && fmt[strlen(fmt) -1] == ':') - fprintf(stderr, " %s", strerror(errno)); - fprintf(stderr, "\n"); - exit(2); /* conventional value for failed execution */ -} -/* emalloc - Taken from "Practice of Programming" by Kernighan and - Pike. If memory allocatiion fails the program will print a message - an exit. */ static void *emalloc(size_t n) { - void *p; - - p = malloc(n); - if (p == NULL) - eprintf("malloc of %u bytes failed:", n); + void *p = malloc(n); + if (! p) abort(); return p; } -/* ecalloc - Dose the same thing as emalloc just calls calloc instead. */ static void *ecalloc(uint32_t nelm, size_t nsize){ - void *p; - - p = calloc(nelm, nsize); - if (p == NULL) - eprintf("calloc of %u bytes failed:", nelm * nsize); + void *p = calloc(nelm, nsize); + if (!p) abort(); return p; } @@ -419,7 +390,7 @@ static void dismem(machine_6502 *machine, AddrMode adm, char *output){ Bit16 n; switch(adm){ case SINGLE: - output = ""; + *output = 0; break; case IMMEDIATE_LESS: case IMMEDIATE_GREAT: @@ -467,7 +438,7 @@ static void dismem(machine_6502 *machine, AddrMode adm, char *output){ sprintf(output,"$%x,x",n); break; case DCB_PARAM: - output = ""; + *output = 0; break; } } @@ -919,13 +890,13 @@ static void jmpRTS(machine_6502 *machine, AddrMode adm){ static void jmpSBC(machine_6502 *machine, AddrMode adm){ Pointer ptr; - Bit8 vflag; + /*Bit8 vflag;*/ Bit8 c = bitOn(machine->regP, CARRY_FL); Bit16 tmp, w; BOOL isValue = getValue(machine, adm, &ptr); warnValue(isValue); - vflag = (bitOn(machine->regA,NEGATIVE_FL) && - bitOn(ptr.value, NEGATIVE_FL)); + /*vflag = (bitOn(machine->regA,NEGATIVE_FL) && + bitOn(ptr.value, NEGATIVE_FL));*/ if (bitOn(machine->regP, DECIMAL_FL)) { Bit8 ar = nibble(machine->regA, RIGHT); @@ -1700,12 +1671,10 @@ static char *fileToBuffer(const char *filename){ int i = 0; char *buffer = ecalloc(defaultSize,sizeof(char)); - if (buffer == NULL) - eprintf("Could not allocate memory for buffer."); + if (!buffer) abort(); ifp = fopen(filename, "rb"); - if (ifp == NULL) - eprintf("Could not open file."); + if (!ifp) return 0; while((c = getc(ifp)) != EOF){ buffer[i++] = c; @@ -1713,15 +1682,13 @@ static char *fileToBuffer(const char *filename){ size += defaultSize; buffer = realloc(buffer, size); if (buffer == NULL) { - fclose(ifp); - eprintf("Could not resize buffer."); + abort(); } } } fclose(ifp); buffer = realloc(buffer, i+2); - if (buffer == NULL) - eprintf("Could not resize buffer."); + if (!buffer) abort(); /* Make sure we have a line feed at the end */ buffer[i] = '\n'; buffer[i+1] = '\0'; @@ -1776,8 +1743,7 @@ void hexDump(machine_6502 *machine, Bit16 start, Bit16 numbytes, FILE *output){ /* Bit16 end = pc + machine->codeLen; */ /* Bit16 n; */ /* ofp = fopen(filename, "w"); */ -/* if (ofp == NULL) */ -/* eprintf("Could not open file."); */ +/* if (!ofp) abort(); */ /* fprintf(ofp,"Bit8 prog[%d] =\n{",machine->codeLen); */ /* n = 1; */ @@ -2011,7 +1977,7 @@ static BOOL indexLabels(AsmLine *asmline, void *arg){ } else { machine->regPC = machine->defaultCodePC; - oldDefault = machine->defaultCodePC; + /*oldDefault = machine->defaultCodePC;*/ } if (asmline->labelDecl) { @@ -2204,9 +2170,7 @@ void eval_file(machine_6502 *machine, const char *filename, Plotter plot, void * code = fileToBuffer(filename); - if (! compileCode(machine, code) ){ - eprintf("Could not compile code.\n"); - } + if (! compileCode(machine, code) ) abort(); free(code); @@ -2230,9 +2194,7 @@ void start_eval_file(machine_6502 *machine, const char *filename, Plotter plot, code = fileToBuffer(filename); - if (! compileCode(machine, code) ){ - eprintf("Could not compile code.\n"); - } + if (! compileCode(machine, code) ) abort(); free(code); diff --git a/hacks/barcode.c b/hacks/barcode.c index 61b0c237..7e15d0d4 100644 --- a/hacks/barcode.c +++ b/hacks/barcode.c @@ -1728,7 +1728,7 @@ static void updateGrid (struct state *st) s[j] = (random() % 10) + '0'; s[j++] = '?'; s[j++] = ':'; - s[j++] = 0; + s[j] = 0; } /* change one digit in this barcode */ diff --git a/hacks/celtic.c b/hacks/celtic.c index a6094a42..e9cef13e 100644 --- a/hacks/celtic.c +++ b/hacks/celtic.c @@ -718,13 +718,11 @@ static int pattern_next_unfilled_couple(Pattern p, Edge *e, Direction *d) static void pattern_make_curves(Pattern p) { - int i; Edge current_edge, first_edge, next_edge; Node current_node, first_node; Direction current_direction, first_direction; Spline s; - i=0; while (pattern_next_unfilled_couple(p, &first_edge, &first_direction)) { /* start a new loop */ s=spline_new(random()%(p->ncolors-2)+2); diff --git a/hacks/config/README b/hacks/config/README index 5b51e8f9..6f210938 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.11 - 13-Apr-2010 + version 5.12 + 15-Sep-2010 http://www.jwz.org/xscreensaver/ diff --git a/hacks/config/glhanoi.xml b/hacks/config/glhanoi.xml index c4405b7d..983321f5 100644 --- a/hacks/config/glhanoi.xml +++ b/hacks/config/glhanoi.xml @@ -11,7 +11,15 @@ - + + + + + diff --git a/hacks/config/rubik.xml b/hacks/config/rubik.xml index 85b6c9b5..e056fd2a 100644 --- a/hacks/config/rubik.xml +++ b/hacks/config/rubik.xml @@ -6,15 +6,16 @@ + _label="Rotation" _low-label="Slow" _high-label="Fast" + low="3" high="200" default="20" + convert="invert"/> diff --git a/hacks/demon.c b/hacks/demon.c index d48ce727..ab7a19b9 100644 --- a/hacks/demon.c +++ b/hacks/demon.c @@ -695,7 +695,7 @@ draw_demon (ModeInfo * mi) dp->newcell[i + mj] = dp->oldcell[k + ml]; /* W */ k = (!i) ? dp->ncols - 1 : i - 1; - l = j; + /*l = j;*/ ml = mj; if (dp->oldcell[k + ml] == (int) (dp->oldcell[i + mj] + 1) % dp->states) @@ -865,7 +865,7 @@ draw_demon (ModeInfo * mi) dp->newcell[i + mj] = dp->oldcell[k + ml]; /* EE */ k = (i + 1 == dp->ncols) ? 0 : i + 1; - l = j; + /*l = j;*/ ml = mj; if (dp->oldcell[k + ml] == (int) (dp->oldcell[i + mj] + 1) % dp->states) @@ -897,7 +897,7 @@ draw_demon (ModeInfo * mi) dp->newcell[i + mj] = dp->oldcell[k + ml]; /* WW */ k = (!i) ? dp->ncols - 1 : i - 1; - l = j; + /*l = j;*/ ml = mj; if (dp->oldcell[k + ml] == (int) (dp->oldcell[i + mj] + 1) % dp->states) diff --git a/hacks/epicycle.c b/hacks/epicycle.c index 4eae8c94..004c0ea5 100644 --- a/hacks/epicycle.c +++ b/hacks/epicycle.c @@ -225,14 +225,6 @@ random_divisor(struct state *st) } -static void -oom(struct state *st) -{ - fprintf(stderr, "Failed to allocate memory!\n"); - exit(-1); -} - - /* Construct a circle or die. */ static Circle * @@ -311,8 +303,7 @@ static Body * new_body(struct state *st) { Body *p = malloc(sizeof(Body)); - if (NULL == p) - oom(st); + if (!p) abort(); p->epicycles = new_circle_chain(st); p->current_color = 0; /* ?? start them all on different colors? */ p->next = NULL; @@ -428,8 +419,7 @@ colour_init(struct state *st, XWindowAttributes *pxgwa) if (!mono_p) { st->colors = (XColor *) malloc(sizeof(*st->colors) * (st->ncolors+1)); - if (!st->colors) - oom(st); + if (!st->colors) abort(); make_smooth_colormap (st->dpy, pxgwa->visual, st->cmap, st->colors, &st->ncolors, True, /* allocate */ diff --git a/hacks/eruption.c b/hacks/eruption.c index 1674fbfc..03b9645e 100644 --- a/hacks/eruption.c +++ b/hacks/eruption.c @@ -298,7 +298,7 @@ static void Initialize( struct state *st ) { XGCValues gcValues; XWindowAttributes XWinAttribs; - int iBitsPerPixel, i; + int /*iBitsPerPixel,*/ i; /* Create the Image for drawing */ XGetWindowAttributes( st->dpy, st->window, &XWinAttribs ); @@ -310,7 +310,7 @@ static void Initialize( struct state *st ) for( i=0; idpy = dpy; st->window = window; @@ -397,7 +396,6 @@ eruption_init (Display *dpy, Window window) st->delay = get_integer_resource(st->dpy, "delay", "Integer" ); st->cycles = get_integer_resource(st->dpy, "cycles", "Integer" ); - i = st->cycles; cache(st); diff --git a/hacks/fadeplot.c b/hacks/fadeplot.c index a44bdb3b..babec31c 100644 --- a/hacks/fadeplot.c +++ b/hacks/fadeplot.c @@ -202,11 +202,11 @@ draw_fadeplot (ModeInfo * mi) if ((fp->temps % (fp->angles / 2)) == 0) { fp->temps = fp->temps % fp->angles * 5; if ((fp->temps % (fp->angles)) == 0) - fp->speed.y = (fp->speed.y++) % 30 + 1; + fp->speed.y = (fp->speed.y + 1) % 30 + 1; if ((fp->temps % (fp->angles * 2)) == 0) fp->speed.x = (fp->speed.x) % 20; if ((fp->temps % (fp->angles * 3)) == 0) - fp->step.y = (fp->step.y++) % 2 + 1; + fp->step.y = (fp->step.y + 1) % 2 + 1; MI_CLEARWINDOW(mi); } diff --git a/hacks/flame.c b/hacks/flame.c index 3b329306..01f16aba 100644 --- a/hacks/flame.c +++ b/hacks/flame.c @@ -173,7 +173,7 @@ flame_init (Display *dpy, Window window) static int recurse (struct state *st, double x, double y, int l, Display *dpy, Window win) { - int xp, yp, i; + int /*xp, yp,*/ i; double nx, ny; if (l == st->max_levels) @@ -184,8 +184,8 @@ recurse (struct state *st, double x, double y, int l, Display *dpy, Window win) if (x > -1.0 && x < 1.0 && y > -1.0 && y < 1.0) { - xp = st->points[st->num_points].x = (int) ((st->width / 2) * (x + 1.0)); - yp = st->points[st->num_points].y = (int) ((st->height / 2) * (y + 1.0)); +/* xp = st->points[st->num_points].x = (int) ((st->width / 2) * (x + 1.0)); + yp = st->points[st->num_points].y = (int) ((st->height / 2) * (y + 1.0));*/ st->num_points++; if (st->num_points >= POINT_BUFFER_SIZE) { diff --git a/hacks/flow.c b/hacks/flow.c index 64347332..a2c81991 100644 --- a/hacks/flow.c +++ b/hacks/flow.c @@ -1111,7 +1111,7 @@ draw_flow (ModeInfo * mi) are ok, they help to outline the Poincare' slice. */ for(j = i; j < end; j++) Y(j,b) = Y(i,b); - begin = i + 1; + /*begin = i + 1;*/ break; } diff --git a/hacks/fontglide.c b/hacks/fontglide.c index 73e65d49..f1db0236 100644 --- a/hacks/fontglide.c +++ b/hacks/fontglide.c @@ -1100,7 +1100,7 @@ populate_sentence (state *s, sentence *se) y + se->font->ascent > s->xgwa.height) { unread_word (s, w); - done = True; + /* done = True; */ break; } } @@ -1500,8 +1500,13 @@ launch_text_generator (state *s) } else { - perror (program); + char buf[255]; + sprintf (buf, "%.100s: %.100s", progname, program); + perror (buf); } + + free(oprogram); + free(program); } diff --git a/hacks/fps.c b/hacks/fps.c index 2aa01743..2164fcfe 100644 --- a/hacks/fps.c +++ b/hacks/fps.c @@ -23,7 +23,6 @@ fps_init (Display *dpy, Window window) fps_state *st; const char *font; XFontStruct *f; - int first, last; if (! get_boolean_resource (dpy, "doFPS", "DoFPS")) return 0; @@ -40,9 +39,6 @@ fps_init (Display *dpy, Window window) f = XLoadQueryFont (dpy, font); if (!f) f = XLoadQueryFont (dpy, "fixed"); - first = f->min_char_or_byte2; - last = f->max_char_or_byte2; - { XWindowAttributes xgwa; XGCValues gcv; diff --git a/hacks/fuzzyflakes.c b/hacks/fuzzyflakes.c index 1941d142..91762eac 100644 --- a/hacks/fuzzyflakes.c +++ b/hacks/fuzzyflakes.c @@ -314,10 +314,8 @@ FuzzyFlakesInit(Flake *flake) { int i, j; XWindowAttributes xgwa; - Colormap cmap; XGetWindowAttributes(flake->dpy, flake->window, &xgwa); - cmap = xgwa.colormap; flake->XGWA = xgwa; flake->DB.b = flake->DB.ba = flake->DB.bb = 0; flake->DB.dbuf = get_boolean_resource(flake->dpy, "doubleBuffer", "Boolean"); diff --git a/hacks/glx/._blinkbox.c b/hacks/glx/._blinkbox.c new file mode 100644 index 0000000000000000000000000000000000000000..ccf882e2f27d0f7bd3e4180f6a4e49bdc1d73df2 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO+6kx>q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|`Y!!O| literal 0 HcmV?d00001 diff --git a/hacks/glx/._blocktube.c b/hacks/glx/._blocktube.c new file mode 100644 index 0000000000000000000000000000000000000000..69872d5453b4b83d1b12fc8892c8e9a2b71fda59 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOx)-Pvq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up}Ikrl=O literal 0 HcmV?d00001 diff --git a/hacks/glx/._boing.c b/hacks/glx/._boing.c new file mode 100644 index 0000000000000000000000000000000000000000..ffb4c77ced84237e5021cb27ba6c80f56f430774 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO`Y2E-NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`$*%kf( literal 0 HcmV?d00001 diff --git a/hacks/glx/._bouncingcow.c b/hacks/glx/._bouncingcow.c new file mode 100644 index 0000000000000000000000000000000000000000..72e80c4bce02822cc62903bca7e44966ba2666d7 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOMh>VHq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|*pcPmE literal 0 HcmV?d00001 diff --git a/hacks/glx/._buildlwo.c b/hacks/glx/._buildlwo.c new file mode 100644 index 0000000000000000000000000000000000000000..6737db8cc4c6cfcd7186db46d4c6666457b40548 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOgBz$6q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|(gB4K# literal 0 HcmV?d00001 diff --git a/hacks/glx/._carousel.c b/hacks/glx/._carousel.c new file mode 100644 index 0000000000000000000000000000000000000000..13f0abd83c2cb979058ca26310c3564a24871408 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO<{D5bNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`+XciCv literal 0 HcmV?d00001 diff --git a/hacks/glx/._circuit.c b/hacks/glx/._circuit.c new file mode 100644 index 0000000000000000000000000000000000000000..abe103dba760edf114910a8fdd7bcdb4427731f5 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOmItU5q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|$ViiXK literal 0 HcmV?d00001 diff --git a/hacks/glx/._cubestorm.c b/hacks/glx/._cubestorm.c new file mode 100644 index 0000000000000000000000000000000000000000..930f5a21eda8e20aa3e4e1f3ff0eea14759179d3 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOb`nr2NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`nycNv= literal 0 HcmV?d00001 diff --git a/hacks/glx/._flipflop.c b/hacks/glx/._flipflop.c new file mode 100644 index 0000000000000000000000000000000000000000..8bea9897666ee380bd7ad1c49150a929fa09b92f GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62!1j#T2L%q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|p9~B({ literal 0 HcmV?d00001 diff --git a/hacks/glx/._flyingtoasters.c b/hacks/glx/._flyingtoasters.c new file mode 100644 index 0000000000000000000000000000000000000000..3a885224862cc7a33f9d30ed5cacb6ed799d0879 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOAswg`q+<>c x^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mfi!0p=j&Qnm|E%@TALag0{}p06{P?G literal 0 HcmV?d00001 diff --git a/hacks/glx/._gears.c b/hacks/glx/._gears.c new file mode 100644 index 0000000000000000000000000000000000000000..ba80fda998ed6e6f625ce3c32521d0d1cedbe643 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO(F~{*q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|^m=$#Z literal 0 HcmV?d00001 diff --git a/hacks/glx/._glknots.c b/hacks/glx/._glknots.c new file mode 100644 index 0000000000000000000000000000000000000000..d0f2bdf558d4fc1e74fce6cbab6c011e6748432a GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO=`m0#NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`?OBN#l literal 0 HcmV?d00001 diff --git a/hacks/glx/._gltext.c b/hacks/glx/._gltext.c new file mode 100644 index 0000000000000000000000000000000000000000..3d33c6402e14e2021b7bae13c035d1d26dbde704 GIT binary patch literal 167 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aVZdk_{)Kq2;dkJ62vgO`6^H;NXHx? v=0?-Th!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*O-#eyBP$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO#Sy3!q+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up||?G=Ln literal 0 HcmV?d00001 diff --git a/hacks/glx/._klein.c b/hacks/glx/._klein.c new file mode 100644 index 0000000000000000000000000000000000000000..2c9d8e9d20f112f2a8528af0fccfb88184e63ff1 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOwH2roq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up}JITgqN literal 0 HcmV?d00001 diff --git a/hacks/glx/._lavalite.c b/hacks/glx/._lavalite.c new file mode 100644 index 0000000000000000000000000000000000000000..d1491cd69aff085a52a27bea4a649a9a8c5af6e6 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOjSr|4q+<>c zgV@M`5y*jxiznyj>LnHwsnZtTIw2Fn;IGe04C5C AQUCw| literal 0 HcmV?d00001 diff --git a/hacks/glx/._menger.c b/hacks/glx/._menger.c new file mode 100644 index 0000000000000000000000000000000000000000..6d07ffa4b5b8e0c665b25ea7e0958b7f5cbb5b70 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOZ4Xc>NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`%f))S( literal 0 HcmV?d00001 diff --git a/hacks/glx/._moebiusgears.c b/hacks/glx/._moebiusgears.c new file mode 100644 index 0000000000000000000000000000000000000000..5d22bc0f1308708a58606d7a6ef307c5f650daa8 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOT?42Tq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|?CKYV} literal 0 HcmV?d00001 diff --git a/hacks/glx/._pinion.c b/hacks/glx/._pinion.c new file mode 100644 index 0000000000000000000000000000000000000000..ed37f1f024e138e07dd2a35593f5b3c294e21e22 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO{Q^)aNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`-{uUJg literal 0 HcmV?d00001 diff --git a/hacks/glx/._polyhedra-gl.c b/hacks/glx/._polyhedra-gl.c new file mode 100644 index 0000000000000000000000000000000000000000..c31bebceffe435f7730ffec46e216cf9e4e73eec GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOBL}Dyq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up}Cauu=w literal 0 HcmV?d00001 diff --git a/hacks/glx/._skytentacles.c b/hacks/glx/._skytentacles.c new file mode 100644 index 0000000000000000000000000000000000000000..272dcd8608c09bf857ab64cd38215be451c5a6b0 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOs{yDKq+<>c z^8qn3U<7iY;^N8qxq68O1v#mDA*mH5u6fD%DVcfcKn0n_`MMSsrk1*f)~1HW082g< A$N&HU literal 0 HcmV?d00001 diff --git a/hacks/glx/._sonar-icmp.c b/hacks/glx/._sonar-icmp.c new file mode 100644 index 0000000000000000000000000000000000000000..c4a60689fb1b5fdde8d4bcc90093f9a23b08c902 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62!2ez7wbvq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up}KDizBB literal 0 HcmV?d00001 diff --git a/hacks/glx/._spheremonics.c b/hacks/glx/._spheremonics.c new file mode 100644 index 0000000000000000000000000000000000000000..9c1fe79d9eb9fc5834a25fcaaed11ed5b5535fec GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO>n%_zNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`{;TAOj literal 0 HcmV?d00001 diff --git a/hacks/glx/._stonerview.c b/hacks/glx/._stonerview.c new file mode 100644 index 0000000000000000000000000000000000000000..c21a671d8d1ad9bf3ddde9e2af3c04d0fb104fdb GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOy9KBeq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up}K$`#E3 literal 0 HcmV?d00001 diff --git a/hacks/glx/._tangram.c b/hacks/glx/._tangram.c new file mode 100644 index 0000000000000000000000000000000000000000..e5b3d1351973a81918e27b94fe5213a31e14f8f5 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgO`wvhlNXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI{1(iTMk literal 0 HcmV?d00001 diff --git a/hacks/glx/._timetunnel.c b/hacks/glx/._timetunnel.c new file mode 100644 index 0000000000000000000000000000000000000000..e8808f5340eb4e7f8c152da17197b76a7052c143 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOXC+W6NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`zg%$Gv literal 0 HcmV?d00001 diff --git a/hacks/glx/._tunnel_draw.c b/hacks/glx/._tunnel_draw.c new file mode 100644 index 0000000000000000000000000000000000000000..f546b96d0c4a6353fada104816188e0c12b36ae4 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62!2eP86sVq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|*4i#1a literal 0 HcmV?d00001 diff --git a/hacks/glx/._voronoi.c b/hacks/glx/._voronoi.c new file mode 100644 index 0000000000000000000000000000000000000000..448e20e0c8786669fe0aefd3eb073cd52e66c868 GIT binary patch literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62vgOZv#*%NXHx? y=0nrQh!7V~&d=3LEGWoH)eA|jC~?h8&QHnAO9v{*EY8=purRgMHMBN0GzI`$P8IwB literal 0 HcmV?d00001 diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in index 80153aa0..9c0e4bbe 100644 --- a/hacks/glx/Makefile.in +++ b/hacks/glx/Makefile.in @@ -742,7 +742,7 @@ dnalogo: dnalogo.o tube.o normals.o $(HACK_TRACK_OBJS) topblock: topblock.o sphere.o $(HACK_TRACK_OBJS) $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS) -SCHOOL_OBJS=glschool.o glschool_alg.o glschool_gl.o sphere.o tube.o $(HACK_OBJS) +SCHOOL_OBJS=glschool.o glschool_alg.o glschool_gl.o $(HACK_OBJS) glschool: $(SCHOOL_OBJS) $(CC_HACK) -o $@ $(SCHOOL_OBJS) $(HACK_LIBS) diff --git a/hacks/glx/blinkbox.c b/hacks/glx/blinkbox.c index b2c6e4bc..8721a81a 100644 --- a/hacks/glx/blinkbox.c +++ b/hacks/glx/blinkbox.c @@ -151,7 +151,7 @@ swap_mov(GLfloat *a, GLfloat *b) swap(a,b); j = get_rand(); if (*a < 0) - *a = (j *= -1); + *a = j * -1; else *a = j; } diff --git a/hacks/glx/blocktube.c b/hacks/glx/blocktube.c index f62f3413..f3e71c81 100644 --- a/hacks/glx/blocktube.c +++ b/hacks/glx/blocktube.c @@ -216,7 +216,6 @@ ENTRYPOINT void init_blocktube (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - lp = &lps[MI_SCREEN(mi)]; } lp = &lps[MI_SCREEN(mi)]; diff --git a/hacks/glx/boing.c b/hacks/glx/boing.c index 55a3fb5a..1c95d1ea 100644 --- a/hacks/glx/boing.c +++ b/hacks/glx/boing.c @@ -527,8 +527,6 @@ init_boing (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/bouncingcow.c b/hacks/glx/bouncingcow.c index 35b01422..ec2a4b77 100644 --- a/hacks/glx/bouncingcow.c +++ b/hacks/glx/bouncingcow.c @@ -284,8 +284,6 @@ init_cow (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/buildlwo.c b/hacks/glx/buildlwo.c index ea88f999..c20c9e2d 100644 --- a/hacks/glx/buildlwo.c +++ b/hacks/glx/buildlwo.c @@ -79,7 +79,7 @@ BuildLWO(int wireframe, const struct lwo *object) grab = pnts + ((int) (*pols) * 3); three[0] = *(grab++); three[1] = *(grab++); - three[2] = *(grab++); + three[2] = *(grab); glVertex3fv(three); } --num_pnts; diff --git a/hacks/glx/carousel.c b/hacks/glx/carousel.c index 0c292535..87de3905 100644 --- a/hacks/glx/carousel.c +++ b/hacks/glx/carousel.c @@ -496,7 +496,6 @@ loading_msg (ModeInfo *mi, int n) carousel_state *ss = &sss[MI_SCREEN(mi)]; int wire = MI_IS_WIREFRAME(mi); char text[100]; - GLfloat scale; if (wire) return; @@ -509,8 +508,6 @@ loading_msg (ModeInfo *mi, int n) if (ss->loading_sw == 0) /* only do this once, so that the string doesn't move. */ ss->loading_sw = texture_string_width (ss->texfont, text, &ss->loading_sh); - scale = ss->loading_sh / (GLfloat) MI_HEIGHT(mi); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); diff --git a/hacks/glx/circuit.c b/hacks/glx/circuit.c index 1c2e1a7c..e4abb261 100644 --- a/hacks/glx/circuit.c +++ b/hacks/glx/circuit.c @@ -423,7 +423,6 @@ static int createCylinder (Circuit *ci, int a; /* current angle around cylinder */ int angle, norm; float z1, y1, z2, y2,ex; - int step; int nsegs; glPushMatrix(); @@ -432,7 +431,6 @@ static int createCylinder (Circuit *ci, if (nsegs % 2) nsegs += 1; angle = (half) ? (180 - 90/nsegs) : 374; - step = angle/nsegs; z1 = radius; y1 = 0; glBegin(GL_QUADS); for (a = 0 ; a <= angle ; a+= angle/nsegs) { @@ -1880,7 +1878,6 @@ static int bandedCylinder(Circuit *ci, { int polys = 0; int n; /* band number */ - int p = 0; /* prev number + 1; */ GLfloat col[] = {0,0,0,0}; col[0] = r; col[1] = g; col[2] = bl; @@ -1893,7 +1890,6 @@ static int bandedCylinder(Circuit *ci, glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col); polys += createCylinder(ci, b[n]->len*l, radius*1.05, 0, 0); /* band */ glPopMatrix(); - p = n+1; } return polys; } diff --git a/hacks/glx/cubestorm.c b/hacks/glx/cubestorm.c index 1eb3073a..f3a22e34 100644 --- a/hacks/glx/cubestorm.c +++ b/hacks/glx/cubestorm.c @@ -250,8 +250,6 @@ init_cube (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/dangerball.c b/hacks/glx/dangerball.c index b115d189..2fe07223 100644 --- a/hacks/glx/dangerball.c +++ b/hacks/glx/dangerball.c @@ -230,8 +230,6 @@ init_ball (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/dnalogo.c b/hacks/glx/dnalogo.c index a0d35948..0051ca5f 100644 --- a/hacks/glx/dnalogo.c +++ b/hacks/glx/dnalogo.c @@ -1,4 +1,4 @@ -/* DNA Logo, Copyright (c) 2001, 2002, 2003 Jamie Zawinski +/* DNA Logo, Copyright (c) 2001-2010 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 @@ -113,6 +113,206 @@ ENTRYPOINT ModeSpecOpt logo_opts = {countof(opts), opts, 0, NULL, NULL}; #define PROBABILITY_SCALE 600 +#ifdef DXF_OUTPUT_HACK /* When this is defined, instead of rendering + to the screen, we write a DXF CAD file to stdout. + This is a kludge of shocking magnitude... + Maybe there's some other way to intercept all + glVertex3f calls than with a #define? + */ + +# define glBegin dxf_glBegin +# define glVertex3f dxf_glVertex3f +# define glEnd dxf_glEnd + +static int dxf_type, dxf_point, dxf_point_total, dxf_layer, dxf_color; +static GLfloat dxf_quads[4*4]; + +static void +dxf_glBegin (int type) +{ + dxf_type = type; + dxf_point = 0; + dxf_point_total = 0; +} + +static void +dxf_glVertex3f (GLfloat ox, GLfloat oy, GLfloat oz) +{ + int i = 0; + GLfloat m[4*4]; + GLfloat x, y, z; + + /* Transform the point into modelview space. */ + glGetFloatv (GL_MODELVIEW_MATRIX, m); + x = ox * m[0] + oy * m[4] + oz * m[8] + m[12]; + y = ox * m[1] + oy * m[5] + oz * m[9] + m[13]; + z = ox * m[2] + oy * m[6] + oz * m[10] + m[14]; + + dxf_quads[dxf_point*3+0] = x; + dxf_quads[dxf_point*3+1] = y; + dxf_quads[dxf_point*3+2] = z; + dxf_point++; + dxf_point_total++; + + switch (dxf_type) { + case GL_QUADS: + if (dxf_point < 4) return; + + fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color); + fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "12\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "22\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "32\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "13\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "23\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "33\n%.6f\n", dxf_quads[i++]); + dxf_point = 0; + break; + + case GL_QUAD_STRIP: + if (dxf_point < 4) return; + + fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color); + fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "12\n%.6f\n", dxf_quads[i+3]); /* funky quad strip */ + fprintf (stdout, "22\n%.6f\n", dxf_quads[i+4]); /* vert order: 1243. */ + fprintf (stdout, "32\n%.6f\n", dxf_quads[i+5]); + + fprintf (stdout, "13\n%.6f\n", dxf_quads[i]); + fprintf (stdout, "23\n%.6f\n", dxf_quads[i+1]); + fprintf (stdout, "33\n%.6f\n", dxf_quads[i+2]); + i += 6; + + dxf_quads[0] = dxf_quads[6]; + dxf_quads[1] = dxf_quads[7]; + dxf_quads[2] = dxf_quads[8]; + dxf_quads[3] = dxf_quads[9]; + dxf_quads[4] = dxf_quads[10]; + dxf_quads[5] = dxf_quads[11]; + dxf_point = 2; + break; + + case GL_TRIANGLES: + case GL_TRIANGLE_FAN: + if (dxf_point < 3) return; + + fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color); + fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "12\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "22\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "32\n%.6f\n", dxf_quads[i++]); + + i -= 3; + fprintf (stdout, "13\n%.6f\n", dxf_quads[i++]); /* dup pt 4 as pt 3. */ + fprintf (stdout, "23\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "33\n%.6f\n", dxf_quads[i++]); + + dxf_point = 0; + if (dxf_type == GL_TRIANGLE_FAN) + { + dxf_quads[3] = dxf_quads[6]; + dxf_quads[4] = dxf_quads[7]; + dxf_quads[5] = dxf_quads[8]; + dxf_point = 2; + } + break; + + case GL_LINES: + case GL_LINE_STRIP: + case GL_LINE_LOOP: + + if (dxf_point_total == 1) + { + dxf_quads[6] = ox; + dxf_quads[7] = oy; + dxf_quads[8] = oz; + } + + if (dxf_point < 2) return; + + fprintf (stdout, "0\nLINE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color); + + fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]); + + fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]); + fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]); + + dxf_point = 0; + if (dxf_type != GL_LINES) + { + dxf_quads[0] = dxf_quads[3]; + dxf_quads[1] = dxf_quads[4]; + dxf_quads[2] = dxf_quads[5]; + dxf_point = 1; + } + break; + + default: + abort(); + break; + } +} + +static void +dxf_glEnd(void) +{ + if (dxf_type == GL_LINE_LOOP) /* close loop */ + glVertex3f (dxf_quads[6], dxf_quads[7], dxf_quads[8]); + dxf_type = -1; + dxf_point = 0; + dxf_point_total = 0; +} + + +static void +dxf_start (void) +{ + fprintf (stdout, "0\nSECTION\n2\nHEADER\n0\nENDSEC\n"); + fprintf (stdout, "0\nSECTION\n2\nENTITIES\n"); +} + +static void +dxf_end (void) +{ + fprintf (stdout, "0\nENDSEC\n0\nEOF\n"); + exit (0); +} + +# define unit_tube dxf_unit_tube +# define unit_cone dxf_unit_cone +# define tube_1 dxf_tube_1 +# define tube dxf_tube +# define cone dxf_cone +# include "tube.c" + +#endif /* DXF_OUTPUT_HACK */ + + /* Calculate the angle (in degrees) between two vectors. */ @@ -351,6 +551,7 @@ make_ladder (logo_configuration *dc, int facetted, int wire) if (!dc->clockwise) z = -z, z_inc = -z_inc; + glFrontFace(GL_CCW); for (i = 0; i < nbars; i++) { int facets = dc->bar_facets / (facetted ? 14 : 1); @@ -402,6 +603,10 @@ make_gasket (logo_configuration *dc, int wire) glPushMatrix(); +# ifdef DXF_OUTPUT_HACK + if (! wire) res *= 8; +# endif + # define POINT(r,th) \ ctrl_r [nctrls] = r, \ ctrl_th[nctrls] = (th * d2r), \ @@ -449,13 +654,13 @@ make_gasket (logo_configuration *dc, int wire) POINT (0.880, 319.74); POINT (0.990, 320.08); - POINT (r4, 338.5); + POINT (r4, 338.0); if (! wire) { - POINT (r1a, 338.5); /* cut-out disc */ - POINT (r1a, 343.5); + POINT (r1a, 338.0); /* cut-out disc */ + POINT (r1a, 344.0); } - POINT (r4, 343.5); + POINT (r4, 344.0); POINT (r4, 356.0); POINT (0.872, 356.05); /* top indentation, left half */ @@ -670,7 +875,7 @@ make_gasket (logo_configuration *dc, int wire) GLfloat th; npoints = 0; - th = 338.5 * d2r; + th = 338.0 * d2r; pointsx0[npoints] = r1c * cos(th) * dc->gasket_size; pointsy0[npoints] = r1c * sin(th) * dc->gasket_size; npoints++; @@ -678,13 +883,12 @@ make_gasket (logo_configuration *dc, int wire) pointsy0[npoints] = r4 * sin(th) * dc->gasket_size; npoints++; - th = 343.5 * d2r; + th = 344.0 * d2r; pointsx0[npoints] = r1c * cos(th) * dc->gasket_size; pointsy0[npoints] = r1c * sin(th) * dc->gasket_size; npoints++; pointsx0[npoints] = r4 * cos(th) * dc->gasket_size; pointsy0[npoints] = r4 * sin(th) * dc->gasket_size; - npoints++; if (! wire) { @@ -728,9 +932,9 @@ make_gasket (logo_configuration *dc, int wire) /* Now make a donut. */ { - int nsteps = 12; + int nsteps = (wire ? 12 : 64); GLfloat r0 = 0.04; - GLfloat r1 = 0.060; + GLfloat r1 = 0.070; GLfloat th, cth, sth; glPushMatrix (); @@ -863,7 +1067,9 @@ make_gasket (logo_configuration *dc, int wire) } npoints = 0; - for (th = 0; th < M_PI; th += (M_PI / 6)) + for (th = (wire ? 0 : -0.1); + th <= M_PI + 0.1; + th += (M_PI / (wire ? 5 : 32))) { pointsx0[npoints] = w/2 * cos(th); pointsy0[npoints] = w/2 * sin(th); @@ -1211,6 +1417,31 @@ init_logo (ModeInfo *mi) * dc->speed); } +# ifdef DXF_OUTPUT_HACK + { + dc->frame_depth = dc->gasket_depth; + dxf_layer = 1; + dxf_color = 3; + dxf_start(); + glPushMatrix(); + glRotatef(90, 1, 0, 0); + glRotatef(90, 0, 0, 1); + glPushMatrix(); + glRotatef(helix_rot, 0, 0, 1); + make_ladder (dc, 0, 0); + make_helix (dc, 0, 0); + glRotatef (180, 0, 0, 1); + make_helix (dc, 0, 0); + glPopMatrix(); + dxf_layer++; + make_gasket (dc, 0); + dxf_layer++; + make_frame (dc, 0); + glPopMatrix(); + dxf_end(); + } +# endif + glPushMatrix(); dc->helix_list = glGenLists (1); glNewList (dc->helix_list, GL_COMPILE); diff --git a/hacks/glx/dolphin.c b/hacks/glx/dolphin.c index 1b01e77b..2ef4e338 100644 --- a/hacks/glx/dolphin.c +++ b/hacks/glx/dolphin.c @@ -1947,9 +1947,9 @@ DrawDolphin(fishRec * fish, int wire) pitch = fish->v * sin((fish->htail + 180) * RRAD); - if (fish->v > 2) { +/* if (fish->v > 2) { chomp = -(fish->v - 2) * 200; - } + }*/ chomp = 100; P012[1] = iP012[1] + seg5; diff --git a/hacks/glx/engine.c b/hacks/glx/engine.c index f8be3c49..c058bc50 100644 --- a/hacks/glx/engine.c +++ b/hacks/glx/engine.c @@ -303,10 +303,8 @@ static int cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z, int b = 0; /* previous */ int angle, norm, step, sangle; float z1, y1, z2, y2, ex=0; - float y3, z3; - float Z1, Y1, Z2, Y2, xl, Y3, Z3; + float Z1, Y1, Z2, Y2, xl; GLfloat y2c[TWOREV], z2c[TWOREV]; - GLfloat ony, onz; /* previous normals */ int nsegs, tube = 0; glPushMatrix(); @@ -317,7 +315,6 @@ static int cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z, nsegs += 1; sangle = sang; angle = eang; - ony = onz = 0; z1 = e->cos_table[sangle]*outer+z; y1 = e->sin_table[sangle] * outer+y; Z1 = e->cos_table[sangle] * inner+z; Y1 = e->sin_table[sangle]*inner+y ; Z2 = z; @@ -330,15 +327,11 @@ static int cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z, for (a = sangle ; a <= angle || b <= angle ; a+= step) { y2=outer*(float)e->sin_table[a]+y; z2=outer*(float)e->cos_table[a]+z; - y3=outer*(float)e->sin_table[a+step]+y; - z3=outer*(float)e->cos_table[a+step]+z; if (endcaps) y2c[a] = y2; z2c[a] = z2; /* cache for later */ if (tube) { Y2=inner*(float)e->sin_table[a]+y; Z2=inner*(float)e->cos_table[a]+z; - Y3=inner*(float)e->sin_table[a+step]+y; - Z3=inner*(float)e->cos_table[a+step]+z; } glNormal3f(0, y1, z1); glVertex3f(x,y1,z1); diff --git a/hacks/glx/flipflop.c b/hacks/glx/flipflop.c index ace3b88b..ec20898f 100644 --- a/hacks/glx/flipflop.c +++ b/hacks/glx/flipflop.c @@ -729,12 +729,10 @@ randsheet_new_move( randsheet* rs ) static void randsheet_move( randsheet *rs, float rot ) { - int i, j, index; + int index; float tmp; for( index = 0 ; index < numsquares; index++ ) { - i = rs->xpos[ index ]; - j = rs->ypos[ index ]; switch( rs->direction[ index ] ) { case 0: diff --git a/hacks/glx/flyingtoasters.c b/hacks/glx/flyingtoasters.c index 52e59586..9e1a482d 100644 --- a/hacks/glx/flyingtoasters.c +++ b/hacks/glx/flyingtoasters.c @@ -405,8 +405,6 @@ init_toasters (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/font-ximage.c b/hacks/glx/font-ximage.c index c8ddc482..c7b0051d 100644 --- a/hacks/glx/font-ximage.c +++ b/hacks/glx/font-ximage.c @@ -158,15 +158,11 @@ text_to_ximage (Screen *screen, Visual *visual, while ((line = strtok(token, "\r\n"))) { XCharStruct o2; - int ascent, descent, direction, xoff2; + int ascent, descent, direction; token = 0; XTextExtents(f, line, strlen(line), &direction, &ascent, &descent, &o2); - xoff2 = (xoff + - ((overall.lbearing + overall.rbearing) - - (o2.lbearing + o2.rbearing)) / 2); - XDrawString(dpy, bitmap, gc, overall.lbearing + margin + xoff, ((f->ascent * (lines + 1)) + diff --git a/hacks/glx/gears.c b/hacks/glx/gears.c index 054bc1c0..42a9e70b 100644 --- a/hacks/glx/gears.c +++ b/hacks/glx/gears.c @@ -739,8 +739,6 @@ init_gears (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/glblur.c b/hacks/glx/glblur.c index 08bd6911..f2edb3d9 100644 --- a/hacks/glx/glblur.c +++ b/hacks/glx/glblur.c @@ -278,7 +278,7 @@ overlay_blur_texture (ModeInfo *mi) GLfloat inc = 0.02 * (25.0 / times); GLfloat spost = 0; /* starting texture coordinate offset */ - GLfloat alpha_inc = 0.9 / times; /* transparency fade factor */ + GLfloat alpha_inc; /* transparency fade factor */ GLfloat alpha = 0.2; /* initial transparency */ glDisable (GL_TEXTURE_GEN_S); diff --git a/hacks/glx/glhanoi.c b/hacks/glx/glhanoi.c index 9f1df0ed..c86abada 100644 --- a/hacks/glx/glhanoi.c +++ b/hacks/glx/glhanoi.c @@ -1,6 +1,7 @@ /* -*- Mode: C; tab-width: 4 -*- */ /* glhanoi, Copyright (c) 2005, 2009 Dave Atkinson * except noise function code Copyright (c) 2002 Ken Perlin + * Modified by Lars Huttar (c) 2010, to generalize to 4 or more poles * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -18,16 +19,21 @@ #define DEF_LIGHT "True" #define DEF_FOG "False" #define DEF_TEXTURE "True" +#define DEF_POLES "0" /* choose random value */ +#define DEF_SPEED "1" #define DEFAULTS "*delay: 15000\n" \ "*count: 0\n" \ "*showFPS: False\n" \ "*wireframe: False\n" - + # define refresh_glhanoi 0 +/* polygon resolution of poles and disks */ #define NSLICE 32 #define NLOOPS 1 + +/* How long to wait at start and finish. */ #define START_DURATION 1.0 #define FINISH_DURATION 1.0 #define BASE_LENGTH 30.0 @@ -39,6 +45,7 @@ #define MARBLE_SCALE 1.01 #undef BELLRAND +/* Return a double precision number in [0...n], with bell curve distribution. */ #define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3) enum { @@ -92,6 +99,7 @@ typedef struct { GLfloat t1, t2; GLfloat ucostheta, usintheta; GLdouble rotAngle; + GLfloat speed; int polys; } Disk; @@ -99,7 +107,15 @@ typedef struct { Disk **data; int count; int size; -} Stack; +} Pole; + +/* A SubProblem is a recursive subdivision of the problem, and means + "Move nDisks disks from src pole to dst pole, using the poles indicated in 'available'." */ +typedef struct { + int nDisks; + int src, dst; + unsigned long available; /* a bitmask of poles that have no smaller disks on them */ +} SubProblem; typedef struct { GLXContext *glx_context; @@ -111,18 +127,23 @@ typedef struct { double lastTime; double duration; int numberOfDisks; + int numberOfPoles; int numberOfMoves; int maxDiskIdx; int magicNumber; Disk *currentDisk; int move; + /* src, tmp, dst: index of pole that is source / storage / destination for + current move */ int src; int tmp; int dst; int oldsrc; int oldtmp; int olddst; - Stack pole[3]; + SubProblem *solveStack; + int solveStackSize, solveStackIdx; + Pole *pole; float boardSize; float baseLength; float baseWidth; @@ -147,13 +168,14 @@ typedef struct { int drag_y; int noise_initted; int p[512]; - } glhcfg; static glhcfg *glhanoi_cfg = NULL; static Bool fog; static Bool light; static Bool texture; +static int poles; +static double speed; /* coefficient for how fast the disks move */ static XrmOptionDescRec opts[] = { {"-light", ".glhanoi.light", XrmoptionNoArg, "true"}, @@ -161,19 +183,25 @@ static XrmOptionDescRec opts[] = { {"-fog", ".glhanoi.fog", XrmoptionNoArg, "true"}, {"+fog", ".glhanoi.fog", XrmoptionNoArg, "false"}, {"-texture", ".glhanoi.texture", XrmoptionNoArg, "true"}, - {"+texture", ".glhanoi.texture", XrmoptionNoArg, "false"} + {"+texture", ".glhanoi.texture", XrmoptionNoArg, "false"}, + {"-poles", ".glhanoi.poles", XrmoptionSepArg, 0 }, + {"-speed", ".glhanoi.speed", XrmoptionSepArg, 0 } }; static argtype vars[] = { {&light, "light", "Light", DEF_LIGHT, t_Bool}, {&fog, "fog", "Fog", DEF_FOG, t_Bool}, - {&texture, "texture", "Texture", DEF_TEXTURE, t_Bool} + {&texture, "texture", "Texture", DEF_TEXTURE, t_Bool}, + {&poles, "poles", "Poles", DEF_POLES, t_Int}, + {&speed, "speed", "Speed", DEF_SPEED, t_Float} }; static OptionStruct desc[] = { {"+/-light", "whether to light the scene"}, {"+/-fog", "whether to apply fog to the scene"}, - {"+/-texture", "whether to apply texture to the scene"} + {"+/-texture", "whether to apply texture to the scene"}, + {"-poles r", "number of poles to move disks between"}, + {"-speed s", "speed multiplier"} }; ENTRYPOINT ModeSpecOpt glhanoi_opts = { countof(opts), opts, countof(vars), vars, desc }; @@ -214,14 +242,24 @@ static const GLfloat spc1[4] = { 1.0, 1.0, 1.0, 1.0 }; static float g = 3.0 * 9.80665; /* hmm, looks like we need more gravity, Scotty... */ +static void checkAllocAndExit(Bool item, char *descr) { + if (!item) { + fprintf(stderr, "%s: unable to allocate memory for %s\n", + progname, descr); + exit(EXIT_FAILURE); + } +} + #define DOPUSH(X, Y) (((X)->count) >= ((X)->size)) ? NULL : ((X)->data[(X)->count++] = (Y)) #define DOPOP(X) (X)->count <= 0 ? NULL : ((X)->data[--((X)->count)]) +/* push disk d onto pole idx */ static Disk *push(glhcfg *glhanoi, int idx, Disk * d) { return DOPUSH(&glhanoi->pole[idx], d); } +/* pop the top disk from pole idx */ static Disk *pop(glhcfg *glhanoi, int idx) { return DOPOP(&glhanoi->pole[idx]); @@ -236,6 +274,7 @@ static inline void swap(int *x, int *y) /* * magic - it's magic... + * Return 1 if the number of trailing zeroes on i is even, unless i is 1 or 0. */ static int magic(int i) { @@ -286,6 +325,7 @@ static void moveSetup(glhcfg *glhanoi, Disk * disk) if(random() % 4 == 0) { disk->rotAngle = -disk->rotAngle; } + } else { disk->rotAngle = -180.0; } @@ -296,8 +336,8 @@ static void moveSetup(glhcfg *glhanoi, Disk * disk) FINISHED ? disk->base0 : glhanoi->diskPos[glhanoi->pole[dst]. count]; - disk->xmin = glhanoi->poleOffset * (src - 1); - disk->xmax = glhanoi->poleOffset * (dst - 1); + disk->xmin = glhanoi->poleOffset * (src - (glhanoi->numberOfPoles - 1.0f) * 0.5); + disk->xmax = glhanoi->poleOffset * (dst - (glhanoi->numberOfPoles - 1.0f) * 0.5); disk->ymin = glhanoi->poleHeight; absx = fabs(disk->xmax - disk->xmin); @@ -324,23 +364,160 @@ static void moveSetup(glhcfg *glhanoi, Disk * disk) disk->u2 = disk->usintheta - g * disk->t2; } +/* For debugging: show a value as a string of ones and zeroes +static const char *byteToBinary(int x) { + static char b[9]; + int i, z; + + for (z = 128, i = 0; z > 0; z >>= 1, i++) { + b[i] = ((x & z) == z) ? '1' : '0'; + } + b[i] = '\0'; + + return b; +} +*/ + +static void pushMove(glhcfg *glhanoi, int n, int src, int dst, int avail) { + SubProblem *sp = &(glhanoi->solveStack[glhanoi->solveStackIdx++]); + + if (glhanoi->solveStackIdx > glhanoi->solveStackSize) { + fprintf(stderr, "solveStack overflow: pushed index %d: %d from %d to %d, using %d\n", + glhanoi->solveStackIdx, n, src, dst, avail); + exit(EXIT_FAILURE); + } + + sp->nDisks = n; + sp->src = src; + sp->dst = dst; + sp->available = avail & ~((unsigned long)(1 << src)) + & ~((unsigned long)(1 << dst)); + /* + fprintf(stderr, "Debug: > pushed solveStack %d: %d from %d to %d, using %s\n", + glhanoi->solveStackIdx - 1, n, src, dst, byteToBinary(sp->available)); + */ +} + + +static Bool solveStackEmpty(glhcfg *glhanoi) { + return (glhanoi->solveStackIdx < 1); +} + +static SubProblem *popMove(glhcfg *glhanoi) { + SubProblem *sp; + if (solveStackEmpty(glhanoi)) return (SubProblem *)NULL; + sp = &(glhanoi->solveStack[--glhanoi->solveStackIdx]); + /* fprintf(stderr, "Debug: < popped solveStack %d: %d from %d to %d, using %s\n", + glhanoi->solveStackIdx, sp->nDisks, sp->src, sp->dst, byteToBinary(sp->available)); */ + return sp; +} + +/* Return number of bits set in b */ +static int numBits(unsigned long b) { + int count = 0; + while (b) { + count += b & 0x1u; + b >>= 1; + } + return count; +} + +/* Return index (power of 2) of least significant 1 bit. */ +static int bitScan(unsigned long b) { + int count; + for (count = 0; b; count++, b >>= 1) { + if (b & 0x1u) return count; + } + return -1; +} + +/* A bit pattern representing all poles */ +#define ALL_POLES ((1 << glhanoi->numberOfPoles) - 1) + +#define REMOVE_BIT(a, b) ((a) & ~(1 << (b))) +#define ADD_BIT(a, b) ((a) | (1 << (b))) + static void makeMove(glhcfg *glhanoi) { - int fudge = glhanoi->move + 2; - int magicNumber = magic(fudge); + if (glhanoi->numberOfPoles == 3) { + int fudge = glhanoi->move + 2; + int magicNumber = magic(fudge); - glhanoi->currentDisk = pop(glhanoi, glhanoi->src); - moveSetup(glhanoi, glhanoi->currentDisk); - push(glhanoi, glhanoi->dst, glhanoi->currentDisk); - fudge = fudge % 2; - if(fudge == 1 || magicNumber) { - swap(&glhanoi->src, &glhanoi->tmp); - } - if(fudge == 0 || glhanoi->magicNumber) { - swap(&glhanoi->dst, &glhanoi->tmp); + glhanoi->currentDisk = pop(glhanoi, glhanoi->src); + moveSetup(glhanoi, glhanoi->currentDisk); + push(glhanoi, glhanoi->dst, glhanoi->currentDisk); + + fudge = fudge % 2; + + if(fudge == 1 || magicNumber) { + swap(&glhanoi->src, &glhanoi->tmp); + } + if(fudge == 0 || glhanoi->magicNumber) { + swap(&glhanoi->dst, &glhanoi->tmp); + } + glhanoi->magicNumber = magicNumber; + } else { + SubProblem sp; + int tmp = 0; + + if (glhanoi->move == 0) { + /* Initialize the solution stack. Original problem: + move all disks from pole 0 to furthest pole, + using all other poles. */ + pushMove(glhanoi, glhanoi->numberOfDisks, 0, + glhanoi->numberOfPoles - 1, + REMOVE_BIT(REMOVE_BIT(ALL_POLES, 0), glhanoi->numberOfPoles - 1)); + } + + while (!solveStackEmpty(glhanoi)) { + int k, numAvail; + sp = *popMove(glhanoi); + + if (sp.nDisks == 1) { + /* We have a single, concrete move to do. */ + /* moveSetup uses glhanoi->src, dst. */ + glhanoi->src = sp.src; + glhanoi->dst = sp.dst; + glhanoi->tmp = tmp; /* Probably unnecessary */ + + glhanoi->currentDisk = pop(glhanoi, sp.src); + moveSetup(glhanoi, glhanoi->currentDisk); + push(glhanoi, sp.dst, glhanoi->currentDisk); + + return; + } else { + /* Divide and conquer, using Frame-Stewart algorithm, until we get to base case */ + if (sp.nDisks == 1) break; + + numAvail = numBits(sp.available); + if (numAvail < 2) k = sp.nDisks - 1; + else if(numAvail >= sp.nDisks - 2) k = 1; + /* heuristic for optimal k: sqrt(2n) (see http://www.cs.wm.edu/~pkstoc/boca.pdf) */ + else k = (int)(sqrt(2 * sp.nDisks)); + + if (k >= sp.nDisks) k = sp.nDisks - 1; + else if (k < 1) k = 1; + + tmp = bitScan(sp.available); + /* fprintf(stderr, "Debug: k is %d, tmp is %d\n", k, tmp); */ + if (tmp == -1) { + fprintf(stderr, "Error: n > 1 (%d) and no poles available\n", + sp.nDisks); + } + + /* Push on moves in reverse order, since this is a stack. */ + pushMove(glhanoi, k, tmp, sp.dst, + REMOVE_BIT(ADD_BIT(sp.available, sp.src), tmp)); + pushMove(glhanoi, sp.nDisks - k, sp.src, sp.dst, + REMOVE_BIT(sp.available, tmp)); + pushMove(glhanoi, k, sp.src, tmp, + REMOVE_BIT(ADD_BIT(sp.available, sp.dst), tmp)); + + /* Repeat until we've found a move we can make. */ + } + } } - glhanoi->magicNumber = magicNumber; } static double lerp(double alpha, double start, double end) @@ -373,6 +550,7 @@ static void downfunc(GLdouble t, Disk * d) d->rotation[1] = 0.0; } +/* Return true iff move is finished. */ static Bool computePosition(GLfloat t, Disk * d) { Bool finished = False; @@ -435,6 +613,13 @@ static void changeState(glhcfg *glhanoi, State state) glhanoi->startTime = getTime(); } +static Bool finishedHanoi(glhcfg *glhanoi) { + /* use different criteria depending on algorithm */ + return (glhanoi->numberOfPoles == 3 ? + glhanoi->move >= glhanoi->numberOfMoves : + solveStackEmpty(glhanoi)); +} + static void update_glhanoi(glhcfg *glhanoi) { double t = getTime() - glhanoi->startTime; @@ -456,13 +641,14 @@ static void update_glhanoi(glhcfg *glhanoi) break; case MOVE_DISK: - if(computePosition(t, glhanoi->currentDisk)) { + if(computePosition(t * glhanoi->currentDisk->speed, glhanoi->currentDisk)) { changeState(glhanoi, MOVE_FINISHED); } break; case MOVE_FINISHED: - if(++glhanoi->move < glhanoi->numberOfMoves) { + ++glhanoi->move; + if(!finishedHanoi(glhanoi)) { makeMove(glhanoi); changeState(glhanoi, MOVE_DISK); } else { @@ -608,7 +794,7 @@ static int drawTube(GLdouble bottomRadius, GLdouble topRadius, GLint lastSlice = nSlice - 1; GLfloat radius; GLfloat innerRadius; - GLfloat maxRadius; + /*GLfloat maxRadius;*/ if(bottomThickness > bottomRadius) { bottomThickness = bottomRadius; @@ -622,11 +808,11 @@ static int drawTube(GLdouble bottomRadius, GLdouble topRadius, if(topThickness < 0.0) { topThickness = 0.0; } - if(topRadius >= bottomRadius) { +/* if(topRadius >= bottomRadius) { maxRadius = topRadius; } else { maxRadius = bottomRadius; - } + }*/ /* bottom */ y = 0.0; @@ -834,7 +1020,8 @@ static int drawDisks(glhcfg *glhanoi) static GLfloat getDiskRadius(glhcfg *glhanoi, int i) { - return ((GLfloat) i + 3.0) * glhanoi->poleRadius; + return ((GLfloat) i + 3.0) * glhanoi->baseLength / + (2 * 0.95 * glhanoi->numberOfPoles * (glhanoi->numberOfDisks + 3.0)); } static void initData(glhcfg *glhanoi) @@ -843,39 +1030,46 @@ static void initData(glhcfg *glhanoi) int i; glhanoi->baseLength = BASE_LENGTH; - glhanoi->poleRadius = glhanoi->baseLength / - (2.0 * (3 * glhanoi->numberOfDisks + 7.0)); maxDiskRadius = getDiskRadius(glhanoi, glhanoi->numberOfDisks); + glhanoi->poleRadius = maxDiskRadius / (glhanoi->numberOfDisks + 3.0); + /* fprintf(stderr, "Debug: baseL = %f, maxDiskR = %f, poleR = %f\n", + glhanoi->baseLength, maxDiskRadius, glhanoi->poleRadius); */ glhanoi->baseWidth = 2.0 * maxDiskRadius; glhanoi->poleOffset = 2.0 * getDiskRadius(glhanoi, glhanoi->maxDiskIdx); glhanoi->diskHeight = 2.0 * glhanoi->poleRadius; glhanoi->baseHeight = 2.0 * glhanoi->poleRadius; glhanoi->poleHeight = glhanoi->numberOfDisks * glhanoi->diskHeight + glhanoi->poleRadius; + /* numberOfMoves only applies if numberOfPoles = 3 */ glhanoi->numberOfMoves = (1 << glhanoi->numberOfDisks) - 1; glhanoi->boardSize = glhanoi->baseLength * 0.5 * (1.0 + sqrt(5.0)); - for(i = 0; i < 3; i++) { - if((glhanoi->pole[i].data = - calloc(glhanoi->numberOfDisks, sizeof(Disk *))) == NULL) { - fprintf(stderr, "%s: out of memory creating stack %d\n", - progname, i); - exit(1); - } + glhanoi->pole = (Pole *)calloc(glhanoi->numberOfPoles, sizeof(Pole)); + checkAllocAndExit(!!glhanoi->pole, "poles"); + + for(i = 0; i < glhanoi->numberOfPoles; i++) { + checkAllocAndExit( + !!(glhanoi->pole[i].data = calloc(glhanoi->numberOfDisks, sizeof(Disk *))), + "disk stack"); glhanoi->pole[i].size = glhanoi->numberOfDisks; } - if((glhanoi->diskPos = - calloc(glhanoi->numberOfDisks, sizeof(double))) == NULL) { - fprintf(stderr, "%s: out of memory creating diskPos\n", progname); - exit(1); - } + checkAllocAndExit( + !!(glhanoi->diskPos = calloc(glhanoi->numberOfDisks, sizeof(double))), + "diskPos"); glhanoi->the_rotator = make_rotator(0.1, 0.025, 0, 1, 0.005, False); glhanoi->button_down_p = False; glhanoi->src = glhanoi->oldsrc = 0; glhanoi->tmp = glhanoi->oldtmp = 1; - glhanoi->dst = glhanoi->olddst = 2; + glhanoi->dst = glhanoi->olddst = glhanoi->numberOfPoles - 1; + + if (glhanoi->numberOfPoles > 3) { + glhanoi->solveStackSize = glhanoi->numberOfDisks + 2; + glhanoi->solveStack = (SubProblem *)calloc(glhanoi->solveStackSize, sizeof(SubProblem)); + checkAllocAndExit(!!glhanoi->solveStack, "solving stack"); + glhanoi->solveStackIdx = 0; + } } static void initView(glhcfg *glhanoi) @@ -1092,6 +1286,7 @@ static void setTexture(glhcfg *glhanoi, int n) glBindTexture(GL_TEXTURE_2D, glhanoi->textureNames[n]); } +/* returns 1 on failure, 0 on success */ static int makeTextures(glhcfg *glhanoi) { GLubyte *marbleTexture; @@ -1132,10 +1327,7 @@ static void initFloor(glhcfg *glhanoi) float texIncr = 1.0 / BOARD_SQUARES; glhanoi->floorpolys = 0; - if((glhanoi->floorList = glGenLists(1)) == 0) { - fprintf(stderr, "can't allocate memory for floor display list\n"); - exit(EXIT_FAILURE); - } + checkAllocAndExit(!!(glhanoi->floorList = glGenLists(1)), "floor display list"); glNewList(glhanoi->floorList, GL_COMPILE); x0 = -glhanoi->boardSize / 2.0; tx0 = 0.0f; @@ -1182,35 +1374,32 @@ static void initFloor(glhcfg *glhanoi) static void initTowers(glhcfg *glhanoi) { - if((glhanoi->baseList = glGenLists(1)) == 0) { - fprintf(stderr, "can't allocate memory for towers display list\n"); - exit(EXIT_FAILURE); - } + int i; + + checkAllocAndExit(!!(glhanoi->baseList = glGenLists(1)), "tower bases display list"); + glNewList(glhanoi->baseList, GL_COMPILE); setMaterial(baseColor, cWhite, 50); glhanoi->basepolys = drawCuboid(glhanoi->baseLength, glhanoi->baseWidth, glhanoi->baseHeight); glEndList(); - if((glhanoi->poleList = glGenLists(1)) == 0) { - fprintf(stderr, "can't allocate memory for towers display list\n"); - exit(EXIT_FAILURE); - } + checkAllocAndExit(!!(glhanoi->poleList = glGenLists(1)), "poles display list\n"); + glNewList(glhanoi->poleList, GL_COMPILE); glPushMatrix(); - glTranslatef(0.0f, glhanoi->baseHeight, 0.0f); + glTranslatef(-glhanoi->poleOffset * (glhanoi->numberOfPoles - 1.0f) * 0.5f, glhanoi->baseHeight, 0.0f); setMaterial(poleColor, cWhite, 50); - glhanoi->polepolys = drawPole(glhanoi->poleRadius, glhanoi->poleHeight); - glPushMatrix(); - glTranslatef(-glhanoi->poleOffset, 0.0, 0.0); - glhanoi->polepolys += drawPole(glhanoi->poleRadius, glhanoi->poleHeight); - glPopMatrix(); - glTranslatef(glhanoi->poleOffset, 0.0, 0.0); - glhanoi->polepolys += drawPole(glhanoi->poleRadius, glhanoi->poleHeight); + for (i = 0; i < glhanoi->numberOfPoles; i++) { + glhanoi->polepolys = drawPole(glhanoi->poleRadius, glhanoi->poleHeight); + /* poleOffset is based on disk radius. */ + glTranslatef(glhanoi->poleOffset, 0.0, 0.0); + } glPopMatrix(); glEndList(); } +/* Parameterized hue based on input 0.0 - 1.0. */ static double cfunc(double x) { #define COMP < @@ -1218,6 +1407,7 @@ static double cfunc(double x) return (1.0 / 12.0) / (1.0 / 7.0) * x; } if(x < 3.0 / 7.0) { + /* (7x - 1) / 6 */ return (1.0 + 1.0 / 6.0) * x - 1.0 / 6.0; } if(x < 4.0 / 7.0) { @@ -1232,11 +1422,8 @@ static double cfunc(double x) static void initDisks(glhcfg *glhanoi) { int i; - if((glhanoi->disk = - (Disk *) calloc(glhanoi->numberOfDisks, sizeof(Disk))) == NULL) { - perror("initDisks"); - exit(EXIT_FAILURE); - } + glhanoi->disk = (Disk *) calloc(glhanoi->numberOfDisks, sizeof(Disk)); + checkAllocAndExit(!!glhanoi->disk, "disks"); for(i = glhanoi->maxDiskIdx; i >= 0; i--) { GLfloat height = (GLfloat) (glhanoi->maxDiskIdx - i); @@ -1246,7 +1433,7 @@ static void initDisks(glhcfg *glhanoi) Disk *disk = &glhanoi->disk[i]; disk->id = i; - disk->position[0] = -glhanoi->poleOffset; + disk->position[0] = -glhanoi->poleOffset * (glhanoi->numberOfPoles - 1.0f) * 0.5; disk->position[1] = glhanoi->diskHeight * height; disk->position[2] = 0.0; disk->rotation[0] = 0.0; @@ -1254,21 +1441,24 @@ static void initDisks(glhcfg *glhanoi) disk->rotation[2] = 0.0; disk->polys = 0; + /* make smaller disks move faster */ + disk->speed = lerp(((double)glhanoi->numberOfDisks - i) / glhanoi->numberOfDisks, 1.0, speed); + /* fprintf(stderr, "disk id: %d, alpha: %0.2f, speed: %0.2f\n", disk->id, + ((double)(glhanoi->maxDiskIdx - i)) / glhanoi->numberOfDisks, disk->speed); */ + color[0] = diskColor; color[1] = 1.0f; color[2] = 1.0f; HSVtoRGBv(color, color); - if((disk->displayList = glGenLists(1)) == 0) { - fprintf(stderr, - "can't allocate memory for disk %d display list\n", i); - exit(EXIT_FAILURE); - } + checkAllocAndExit(!!(disk->displayList = glGenLists(1)), "disk display list"); glNewList(disk->displayList, GL_COMPILE); setMaterial(color, cWhite, 100.0); disk->polys += drawDisk3D(glhanoi->poleRadius, getDiskRadius(glhanoi, i), glhanoi->diskHeight); + /*fprintf(stderr, "Debug: disk %d has radius %f\n", i, + getDiskRadius(glhanoi, i)); */ glEndList(); } for(i = glhanoi->maxDiskIdx; i >= 0; --i) { @@ -1336,17 +1526,13 @@ ENTRYPOINT void init_glhanoi(ModeInfo * mi) if(!glhanoi_cfg) { glhanoi_cfg = (glhcfg *) calloc(MI_NUM_SCREENS(mi), sizeof(glhcfg)); - if(!glhanoi_cfg) { - fprintf(stderr, "%s: out of memory creating configs\n", - progname); - exit(1); - } + checkAllocAndExit(!!glhanoi_cfg, "configuration"); } glhanoi = &glhanoi_cfg[MI_SCREEN(mi)]; glhanoi->glx_context = init_GL(mi); glhanoi->numberOfDisks = MI_BATCHCOUNT(mi); - + if (glhanoi->numberOfDisks <= 1) glhanoi->numberOfDisks = 3 + (int) BELLRAND(9); @@ -1356,6 +1542,18 @@ ENTRYPOINT void init_glhanoi(ModeInfo * mi) glhanoi->numberOfDisks = (8 * sizeof(int)) - 1; glhanoi->maxDiskIdx = glhanoi->numberOfDisks - 1; + + speed = get_float_resource(MI_DISPLAY(mi), "speed", "float"); + /* fprintf(stderr, "speed: %0.2f\n", speed); */ + + glhanoi->numberOfPoles = get_integer_resource(MI_DISPLAY(mi), "poles", "Integer"); + /* Set a number of poles from 3 to numberOfDisks + 1, biased toward lower values, + with probability decreasing linearly. */ + if (glhanoi->numberOfPoles <= 2) + glhanoi->numberOfPoles = 3 + + (int)((1 - sqrt(frand(1.0))) * (glhanoi->numberOfDisks - 1)); + /* fprintf(stderr, "Debug: Num disks: %d; num poles: %d\n", glhanoi->numberOfDisks, glhanoi->numberOfPoles); */ + glhanoi->wire = MI_IS_WIREFRAME(mi); glhanoi->light = light; glhanoi->fog = fog; @@ -1370,10 +1568,7 @@ ENTRYPOINT void init_glhanoi(ModeInfo * mi) } initLights(!glhanoi->wire && glhanoi->light); - if(makeTextures(glhanoi) != 0) { - fprintf(stderr, "can't allocate memory for marble texture\n"); - exit(EXIT_FAILURE); - } + checkAllocAndExit(!makeTextures(glhanoi), "textures\n"); initData(glhanoi); initView(glhanoi); @@ -1396,7 +1591,6 @@ ENTRYPOINT void init_glhanoi(ModeInfo * mi) glEnable(GL_FOG); } - glhanoi->duration = START_DURATION; changeState(glhanoi, START); } @@ -1410,7 +1604,7 @@ ENTRYPOINT void draw_glhanoi(ModeInfo * mi) if(!glhanoi->glx_context) return; - glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(glhanoi->glx_context)); + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(glhanoi->glx_context)); glPolygonMode(GL_FRONT, glhanoi->wire ? GL_LINE : GL_FILL); @@ -1498,7 +1692,7 @@ ENTRYPOINT void release_glhanoi(ModeInfo * mi) glDeleteLists(glh->disk[j].displayList, 1); } free(glh->disk); - for(i = 0; i < 3; i++) { + for(i = 0; i < glh->numberOfPoles; i++) { if(glh->pole[i].data != NULL) { free(glh->pole[i].data); } diff --git a/hacks/glx/glhanoi.man b/hacks/glx/glhanoi.man index 395fd669..2b74cae7 100644 --- a/hacks/glx/glhanoi.man +++ b/hacks/glx/glhanoi.man @@ -9,6 +9,8 @@ glhanoi - OpenGL Towers of Hanoi [\-root] [\-delay \fInumber\fP] [\-count \fInumber\fP] +[\-poles \fInumber\fP] +[\-speed \fInumber\fP] [\-wireframe] [\-light] [\-texture] @@ -34,6 +36,12 @@ Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.). .B \-count \fInumber\fP Number of disks. Default: 7. .TP 8 +.B \-poles \fInumber\fP +Number of poles. Default: random from 3 to disks+1. +.TP 8 +.B \-speed \fInumber\fP +Speed multiplier (for smallest disks). Default: 1. +.TP 8 .B \-wireframe | \-no-wireframe Render in wireframe instead of solid. .TP 8 diff --git a/hacks/glx/glknots.c b/hacks/glx/glknots.c index c02e16ca..4738b71d 100644 --- a/hacks/glx/glknots.c +++ b/hacks/glx/glknots.c @@ -279,8 +279,6 @@ init_knot (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/glmatrix.man b/hacks/glx/glmatrix.man index 75e2b3e2..b211b50c 100644 --- a/hacks/glx/glmatrix.man +++ b/hacks/glx/glmatrix.man @@ -6,11 +6,16 @@ glmatrix - simulates the title sequence effect of the movie [\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP] [\-delay \fIusecs\fP] -[\-density \fIpercentage\fP] -[\-top | \-bottom | \-both] -[\-small | \-large] -[\-trace] -[\-phone \fInumber\fP] +[\-speed \fIratio\fP] +[\-density \fIpct\fP] +[\-no\-fog] +[\-no\-waves] +[\-no\-rotate] +[\-binary] +[\-hexadecimal] +[\-dna] +[\-clock] +[\-timefmt \fIfmt\fP] [\-wireframe] [\-fps] .SH DESCRIPTION @@ -58,6 +63,10 @@ argument disables that. By default, waves of color roll down the columns of glyphs. This argument disables that. .TP 8 +.B \-no-rotate\fP +By default, the scene slowly tilts and rotates. This +argument disables that. +.TP 8 .B \-binary\fP Instead of displaying Matrix glyphs, only display ones and zeros. .TP 8 @@ -68,6 +77,16 @@ Instead of displaying Matrix glyphs, display hexadecimal digits. Instead of displaying Matrix glyphs, display genetic code (guanine, adenine, thymine, and cytosine.) .TP 8 +.B \-clock\fP +Hide a clock displaying the current time somewhere in the glyphs. +.TP 8 +.B \-timefmt\fP \fIstrftime-string\fP +How to format the clock when \fI\-clock\fP is specified. +Default "\ %l%M%p\ ". +.TP 8 +.B \-speed \fIratio\fP +Less than 1 for slower, greater than 1 for faster. Default 1. +.TP 8 .B \-wireframe Just draw boxes instead of textured characters. .TP 8 diff --git a/hacks/glx/glplanet.c b/hacks/glx/glplanet.c index c0e0a573..1a884bf3 100644 --- a/hacks/glx/glplanet.c +++ b/hacks/glx/glplanet.c @@ -555,6 +555,7 @@ init_planet (ModeInfo * mi) glPushMatrix (); glScalef (RADIUS, RADIUS, RADIUS); glRotatef (90, 1, 0, 0); + glFrontFace(GL_CW); unit_sphere (resolution, resolution, wire); mi->polygon_count += resolution*resolution; glPopMatrix (); diff --git a/hacks/glx/glslideshow.c b/hacks/glx/glslideshow.c index 0cdf14d3..386b4d8f 100644 --- a/hacks/glx/glslideshow.c +++ b/hacks/glx/glslideshow.c @@ -358,10 +358,12 @@ image_loaded_cb (const char *filename, XRectangle *geom, img->geom.height *= scale; } - if (img->title) /* strip filename to part after last /. */ + if (img->title) /* strip filename to part between last "/" and last ".". */ { char *s = strrchr (img->title, '/'); if (s) strcpy (img->title, s+1); + s = strrchr (img->title, '.'); + if (s) *s = 0; } if (debug_p) @@ -468,30 +470,22 @@ randomize_sprite (ModeInfo *mi, sprite *sp) int vp_h = MI_HEIGHT(mi); int img_w = sp->img->geom.width; int img_h = sp->img->geom.height; - int min_w, min_h, max_w, max_h; + int min_w, max_w; double ratio = (double) img_h / img_w; if (letterbox_p) { min_w = img_w; - min_h = img_h; } else { if (img_w < vp_w) - { - min_w = vp_w; - min_h = img_h * (float) vp_w / img_w; - } + min_w = vp_w; else - { - min_w = img_w * (float) vp_h / img_h; - min_h = vp_h; - } + min_w = img_w * (float) vp_h / img_h; } max_w = min_w * 100 / zoom; - max_h = min_h * 100 / zoom; sp->from.w = min_w + frand ((max_w - min_w) * 0.4); sp->to.w = max_w - frand ((max_w - min_w) * 0.4); diff --git a/hacks/glx/gltext.c b/hacks/glx/gltext.c index 48ab1c07..314a4ee6 100644 --- a/hacks/glx/gltext.c +++ b/hacks/glx/gltext.c @@ -356,8 +356,6 @@ init_text (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - tp = &tps[MI_SCREEN(mi)]; } tp = &tps[MI_SCREEN(mi)]; @@ -508,10 +506,9 @@ fill_string (const char *string, Bool wire) int line_height = GLUT_FONT->top - GLUT_FONT->bottom; int off; GLfloat x = 0, y = 0; - int lines; int ow, oh; - lines = text_extents (string, &ow, &oh); + text_extents (string, &ow, &oh); y = oh / 2 - line_height; diff --git a/hacks/glx/involute.c b/hacks/glx/involute.c index 6b5c5d97..d31e824d 100644 --- a/hacks/glx/involute.c +++ b/hacks/glx/involute.c @@ -33,8 +33,8 @@ /* For debugging: if true then in wireframe, do not abbreviate. */ -static Bool wire_all_p = False+1; -static Bool show_normals_p = False+1; +static Bool wire_all_p = False; +static Bool show_normals_p = False; /* Draws an uncapped tube of the given radius extending from top to bottom, diff --git a/hacks/glx/jigglypuff.c b/hacks/glx/jigglypuff.c index 2c1ed330..4446d72c 100644 --- a/hacks/glx/jigglypuff.c +++ b/hacks/glx/jigglypuff.c @@ -434,11 +434,10 @@ static vertex *vertex_split(hedge *h, vector v) hedge *h2, *hn1, *hn2; vertex *vtxn; edge *en; - face *f1, *f2; + face *f1; f1 = h->f; h2 = partner(h); - f2 = h2->f; vtxn = vertex_new(f1->s, v); hn1 = hedge_new(h, vtxn); diff --git a/hacks/glx/klein.c b/hacks/glx/klein.c index 9753ac69..0c91e8b4 100644 --- a/hacks/glx/klein.c +++ b/hacks/glx/klein.c @@ -1032,7 +1032,7 @@ static int figure8(ModeInfo *mi, double umin, double umax, double vmin, sv = sin(v); cv2 = cos(0.5*v); sv2 = sin(0.5*v); - c2u = cos(2.0*u); + /*c2u = cos(2.0*u);*/ s2u = sin(2.0*u); xx[0] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*cv; xx[1] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*sv; diff --git a/hacks/glx/lavalite.c b/hacks/glx/lavalite.c index e2697a63..c31df5a4 100644 --- a/hacks/glx/lavalite.c +++ b/hacks/glx/lavalite.c @@ -611,7 +611,6 @@ generate_bottle (ModeInfo *mi) int wire = MI_IS_WIREFRAME(mi); int faces = resolution * 1.5; Bool smooth = do_smooth; - Bool have_texture = False; const lamp_geometry *top_slice = bp->model; const char *current_texture = 0; @@ -660,11 +659,10 @@ generate_bottle (ModeInfo *mi) break; } - have_texture = False; if (!wire && texture && texture != current_texture) { current_texture = texture; - have_texture = load_texture (mi, current_texture); + load_texture (mi, current_texture); } /* Color the discs darker than the tube walls. */ @@ -736,7 +734,7 @@ generate_bottle (ModeInfo *mi) } - have_texture = !wire && load_texture (mi, table_tex); + if (!wire) load_texture (mi, table_tex); glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, table_color); bp->bottle_poly_count += draw_table (top_slice->elevation, wire); @@ -1311,8 +1309,6 @@ init_lavalite (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/lockward.c b/hacks/glx/lockward.c index d4081ee9..255ebb75 100644 --- a/hacks/glx/lockward.c +++ b/hacks/glx/lockward.c @@ -290,7 +290,6 @@ gen_blade_arcs (lockward_context *ctx) there = M_PI * 2.0 / g_blades; step = there / SUBDIV; here -= SUBDIV * step / 2.0; - there -= SUBDIV * step / 2.0; /* * Build outer blade arcs. diff --git a/hacks/glx/menger.c b/hacks/glx/menger.c index 50b8d022..36489fef 100644 --- a/hacks/glx/menger.c +++ b/hacks/glx/menger.c @@ -398,8 +398,6 @@ init_sponge (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - sp = &sps[MI_SCREEN(mi)]; } sp = &sps[MI_SCREEN(mi)]; diff --git a/hacks/glx/moebiusgears.c b/hacks/glx/moebiusgears.c index a17c67ca..bf38150c 100644 --- a/hacks/glx/moebiusgears.c +++ b/hacks/glx/moebiusgears.c @@ -166,8 +166,6 @@ init_mgears (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/molecule.c b/hacks/glx/molecule.c index f8078b2c..58be5ceb 100644 --- a/hacks/glx/molecule.c +++ b/hacks/glx/molecule.c @@ -27,7 +27,8 @@ #define DEFAULTS "*delay: 10000 \n" \ "*showFPS: False \n" \ "*wireframe: False \n" \ - "*atomFont: -*-helvetica-medium-r-normal-*-240-*\n" \ + "*atomFont: -*-helvetica-medium-r-normal-*-180-*\n" \ + "*atomFont2: -*-helvetica-bold-r-normal-*-80-*\n" \ "*titleFont: -*-helvetica-medium-r-normal-*-180-*\n" \ "*noLabelThreshold: 30 \n" \ "*wireframeThreshold: 150 \n" \ @@ -65,8 +66,8 @@ #define DEF_MOLECULE "(default)" #define DEF_VERBOSE "False" -#define SPHERE_SLICES 24 /* how densely to render spheres */ -#define SPHERE_STACKS 12 +#define SPHERE_SLICES 48 /* how densely to render spheres */ +#define SPHERE_STACKS 24 #define SMOOTH_TUBE /* whether to have smooth or faceted tubes */ @@ -76,9 +77,9 @@ # define TUBE_FACES 8 #endif -#define SPHERE_SLICES_2 7 -#define SPHERE_STACKS_2 4 -#define TUBE_FACES_2 3 +#define SPHERE_SLICES_2 14 +#define SPHERE_STACKS_2 8 +#define TUBE_FACES_2 6 # ifdef __GNUC__ @@ -104,10 +105,10 @@ typedef struct { and their approximate size in angstroms. */ static const atom_data all_atom_data[] = { - { "H", 1.17, 0.40, "#FFFFFF", "#B3B3B3", { 0, }}, + { "H", 1.17, 0.40, "#FFFFFF", "#000000", { 0, }}, { "C", 1.75, 0.58, "#999999", "#FFFFFF", { 0, }}, { "CA", 1.80, 0.60, "#0000FF", "#ADD8E6", { 0, }}, - { "N", 1.55, 0.52, "#A2B5CD", "#836FFF", { 0, }}, + { "N", 1.55, 0.52, "#A2B5CD", "#EE99FF", { 0, }}, { "O", 1.40, 0.47, "#FF0000", "#FFB6C1", { 0, }}, { "P", 1.28, 0.43, "#9370DB", "#DB7093", { 0, }}, { "S", 1.80, 0.60, "#8B8B00", "#FFFF00", { 0, }}, @@ -159,8 +160,8 @@ typedef struct { GLuint molecule_dlist; GLuint shell_dlist; - XFontStruct *xfont1, *xfont2; - GLuint font1_dlist, font2_dlist; + XFontStruct *xfont1, *xfont2, *xfont3; + GLuint font1_dlist, font2_dlist, font3_dlist; int polygon_count; time_t draw_time; @@ -258,7 +259,8 @@ load_fonts (ModeInfo *mi) { molecule_configuration *mc = &mcs[MI_SCREEN(mi)]; load_font (mi->dpy, "atomFont", &mc->xfont1, &mc->font1_dlist); - load_font (mi->dpy, "titleFont", &mc->xfont2, &mc->font2_dlist); + load_font (mi->dpy, "atomFont2", &mc->xfont2, &mc->font2_dlist); + load_font (mi->dpy, "titleFont", &mc->xfont3, &mc->font3_dlist); } @@ -333,6 +335,16 @@ set_atom_color (ModeInfo *mi, const molecule_atom *a, gl_color[3] = alpha; + /* If we're not drawing atoms, and the color is black, use white instead. + This is a kludge so that H can have black text over its white ball, + but the text still shows up if balls are off. + */ + if (font_p && !do_atoms && + gl_color[0] == 0 && gl_color[1] == 0 && gl_color[2] == 0) + { + gl_color[0] = gl_color[1] = gl_color[2] = 1; + } + if (font_p) glColor4f (gl_color[0], gl_color[1], gl_color[2], gl_color[3]); else @@ -1195,7 +1207,7 @@ startup_blurb (ModeInfo *mi) { molecule_configuration *mc = &mcs[MI_SCREEN(mi)]; const char *s = "Constructing molecules..."; - print_gl_string (mi->dpy, mc->xfont2, mc->font2_dlist, + print_gl_string (mi->dpy, mc->xfont3, mc->font3_dlist, mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, s, False); @@ -1353,6 +1365,8 @@ draw_labels (ModeInfo *mi) molecule_configuration *mc = &mcs[MI_SCREEN(mi)]; int wire = MI_IS_WIREFRAME(mi); molecule *m = &mc->molecules[mc->which]; + XFontStruct *xfont = (mc->scale_down ? mc->xfont2 : mc->xfont1); + GLuint font_dlist = (mc->scale_down ? mc->font2_dlist : mc->font1_dlist); int i, j; if (!do_labels) @@ -1412,13 +1426,13 @@ draw_labels (ModeInfo *mi) /* Before drawing the string, shift the origin to center the text over the origin of the sphere. */ glBitmap (0, 0, 0, 0, - -string_width (mc->xfont1, a->label, 0) / 2, - -mc->xfont1->descent, + -string_width (xfont, a->label, 0) / 2, + -xfont->descent, NULL); for (j = 0; j < strlen(a->label); j++) - glCallList (mc->font1_dlist + (int)(a->label[j])); + glCallList (font_dlist + (int)(a->label[j])); glPopMatrix(); } @@ -1613,7 +1627,7 @@ draw_molecule (ModeInfo *mi) if (do_titles && m->label && *m->label) { set_atom_color (mi, 0, True, 1); - print_gl_string (mi->dpy, mc->xfont2, mc->font2_dlist, + print_gl_string (mi->dpy, mc->xfont3, mc->font3_dlist, mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, m->label, False); diff --git a/hacks/glx/pinion.c b/hacks/glx/pinion.c index 644ff615..8ba2ee0e 100644 --- a/hacks/glx/pinion.c +++ b/hacks/glx/pinion.c @@ -883,6 +883,7 @@ push_gear (ModeInfo *mi) if (g->coax_p) { + if (!parent) abort(); if (g->x != parent->x) abort(); if (g->y != parent->y) abort(); if (g->z == parent->z) abort(); @@ -1340,8 +1341,6 @@ init_pinion (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - pp = &pps[MI_SCREEN(mi)]; } pp = &pps[MI_SCREEN(mi)]; diff --git a/hacks/glx/polyhedra-gl.c b/hacks/glx/polyhedra-gl.c index 3ea19abd..fe3205ff 100644 --- a/hacks/glx/polyhedra-gl.c +++ b/hacks/glx/polyhedra-gl.c @@ -458,8 +458,6 @@ init_polyhedra (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/polyhedra.c b/hacks/glx/polyhedra.c index c69f3540..7fa22b5c 100644 --- a/hacks/glx/polyhedra.c +++ b/hacks/glx/polyhedra.c @@ -92,22 +92,22 @@ extern const char *progname; #define Malloc(lvalue,n,type) do {\ if (!(lvalue = (type*) calloc((n), sizeof(type)))) \ - Err("out of memory");\ + abort();\ } while(0) #define Realloc(lvalue,n,type) do {\ if (!(lvalue = (type*) realloc(lvalue, (n) * sizeof(type)))) \ - Err("out of memory");\ + abort();\ } while(0) #define Calloc(lvalue,n,type) do {\ if (!(lvalue = (type*) calloc(n, sizeof(type))))\ - Err("out of memory");\ + abort();\ } while(0) #define Matalloc(lvalue,n,m,type) do {\ if (!(lvalue = (type**) matalloc(n, (m) * sizeof(type))))\ - Err("out of memory");\ + abort();\ } while(0) #define Sprintfrac(lvalue,x) do {\ @@ -2263,7 +2263,7 @@ construct_polyhedron (Polyhedron *P, Vector *v, int V, Vector *f, int F, facelets++; } else if (P->even != -1) { - if (hit[i]) { + if (hit && hit[i]) { push_face3 (result, P->incid[3][i], P->incid[0][i], ii); push_face3 (result, P->incid[1][i], P->incid[2][i], ii); } else { diff --git a/hacks/glx/rubik.c b/hacks/glx/rubik.c index 525c6e8f..f4198586 100644 --- a/hacks/glx/rubik.c +++ b/hacks/glx/rubik.c @@ -105,10 +105,10 @@ static const char sccsid[] = "@(#)rubik.c 5.01 2001/03/01 xlockmore"; #ifdef STANDALONE # define MODE_rubik -# define DEFAULTS "*delay: 40000 \n" \ +# define DEFAULTS "*delay: 20000 \n" \ "*count: -30 \n" \ "*showFPS: False \n" \ - "*cycles: 5 \n" \ + "*cycles: 20 \n" \ "*size: -6 \n" # define refresh_rubik 0 # define rubik_handle_event 0 @@ -1789,10 +1789,10 @@ shuffle(ModeInfo * mi) return False; rp->moves[i] = move; } - rp->VX = 0.05; + rp->VX = 0.005; if (NRAND(100) < 50) rp->VX *= -1; - rp->VY = 0.05; + rp->VY = 0.005; if (NRAND(100) < 50) rp->VY *= -1; rp->movement.face = NO_FACE; @@ -1966,16 +1966,16 @@ draw_rubik(ModeInfo * mi) bounced = True; } if (bounced) { - rp->VX += ((float) LRAND() / (float) MAXRAND) * 0.02 - 0.01; - rp->VX += ((float) LRAND() / (float) MAXRAND) * 0.02 - 0.01; - if (rp->VX > 0.06) - rp->VX = 0.06; - if (rp->VY > 0.06) - rp->VY = 0.06; - if (rp->VX < -0.06) - rp->VX = -0.06; - if (rp->VY < -0.06) - rp->VY = -0.06; + rp->VX += ((float) LRAND() / (float) MAXRAND) * 0.002 - 0.001; + rp->VY += ((float) LRAND() / (float) MAXRAND) * 0.002 - 0.001; + if (rp->VX > 0.006) + rp->VX = 0.006; + if (rp->VY > 0.006) + rp->VY = 0.006; + if (rp->VX < -0.006) + rp->VX = -0.006; + if (rp->VY < -0.006) + rp->VY = -0.006; } if (!MI_IS_ICONIC(mi)) { glTranslatef(rp->PX, rp->PY, 0); @@ -2084,7 +2084,7 @@ draw_rubik(ModeInfo * mi) glFlush(); - rp->step += 0.05; + rp->step += 0.002; } #ifndef STANDALONE diff --git a/hacks/glx/skytentacles.c b/hacks/glx/skytentacles.c index 7fa84b4c..3361b2e4 100644 --- a/hacks/glx/skytentacles.c +++ b/hacks/glx/skytentacles.c @@ -850,8 +850,6 @@ init_tentacles (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - tc = &tcs[MI_SCREEN(mi)]; } tc = &tcs[MI_SCREEN(mi)]; diff --git a/hacks/glx/sonar-icmp.c b/hacks/glx/sonar-icmp.c index 8957c192..6429035b 100644 --- a/hacks/glx/sonar-icmp.c +++ b/hacks/glx/sonar-icmp.c @@ -366,7 +366,6 @@ read_hosts_file (sonar_sensor_data *ssd, const char *filename) /* Get the name and address */ - name = addr = 0; if ((addr = strtok(buf, " ,;\t\n"))) name = strtok(0, " ,;\t\n"); else @@ -614,7 +613,6 @@ send_ping (ping_data *pd, const sonar_bogie *b) ping_bogie *pb = (ping_bogie *) b->closure; u_char *packet; struct ICMP *icmph; - int result; const char *token = "org.jwz.xscreensaver.sonar"; int pcktsiz = (sizeof(struct ICMP) + sizeof(struct timeval) + @@ -653,8 +651,8 @@ send_ping (ping_data *pd, const sonar_bogie *b) /* Send it */ - if ((result = sendto(pd->icmpsock, packet, pcktsiz, 0, - &pb->address, sizeof(pb->address))) + if (sendto(pd->icmpsock, packet, pcktsiz, 0, + &pb->address, sizeof(pb->address)) != pcktsiz) { #if 0 @@ -1056,7 +1054,7 @@ parse_mode (sonar_sensor_data *ssd, char **error_ret, if (new) { sonar_bogie *nn = new; - while (nn && nn->next) + while (nn->next) nn = nn->next; nn->next = hostlist; hostlist = new; diff --git a/hacks/glx/sonar.c b/hacks/glx/sonar.c index cdafdef5..66d8b833 100644 --- a/hacks/glx/sonar.c +++ b/hacks/glx/sonar.c @@ -559,9 +559,11 @@ static void copy_and_insert_bogie (sonar_sensor_data *ssd, sonar_bogie *b, sonar_bogie **to_list) { - sonar_bogie *ob, *prev; + sonar_bogie *ob, *next; if (!b) abort(); - for (prev = 0, ob = *to_list; ob; prev = ob, ob = ob->next) + for (ob = *to_list, next = ob ? ob->next : 0; + ob; + ob = next, next = ob ? ob->next : 0) { if (ob == b) abort(); /* this will end badly */ if (!strcmp (ob->name, b->name)) /* match! */ diff --git a/hacks/glx/sphere.c b/hacks/glx/sphere.c index 10e86d76..eb004b11 100644 --- a/hacks/glx/sphere.c +++ b/hacks/glx/sphere.c @@ -1,4 +1,5 @@ -/* sphere, Copyright (c) 2002, 2008 Paul Bourke +/* sphere, Copyright (c) 2002 Paul Bourke , + * Copyright (c) 2010 Jamie Zawinski * Utility function to create a unit sphere in GL. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -13,6 +14,7 @@ * 21-Mar-01: jwz@jwz.org Broke sphere routine out into its own file. * 28-Feb-02: jwz@jwz.org New implementation from Paul Bourke: * http://astronomy.swin.edu.au/~pbourke/opengl/sphere/ + * 21-Aug-10 jwz@jwz.org Converted to use glDrawArrays, for OpenGL ES. */ #include @@ -38,71 +40,98 @@ unit_sphere (int stacks, int slices, int wire_p) int polys = 0; int i,j; double theta1, theta2, theta3; - XYZ e, p; + XYZ p, n; XYZ la = { 0, 0, 0 }, lb = { 0, 0, 0 }; XYZ c = {0, 0, 0}; /* center */ double r = 1.0; /* radius */ int stacks2 = stacks * 2; + int mode = (wire_p ? GL_LINE_LOOP : GL_TRIANGLE_STRIP); + + int arraysize, out; + struct { XYZ p; XYZ n; GLfloat s, t; } *array; + if (r < 0) r = -r; if (slices < 0) slices = -slices; + arraysize = (stacks+1) * (slices+1) * (wire_p ? 4 : 2); + array = (void *) calloc (arraysize, sizeof(*array)); + if (! array) abort(); + out = 0; + + if (slices < 4 || stacks < 2 || r <= 0) { - glBegin (GL_POINTS); - glVertex3f (c.x, c.y, c.z); - glEnd(); - return 1; + mode = GL_POINTS; + array[out++].p = c; + goto END; } - glFrontFace(GL_CW); - for (j = 0; j < stacks; j++) { theta1 = j * (M_PI+M_PI) / stacks2 - M_PI_2; theta2 = (j + 1) * (M_PI+M_PI) / stacks2 - M_PI_2; - glBegin (wire_p ? GL_LINE_LOOP : GL_TRIANGLE_STRIP); - for (i = 0; i <= slices; i++) + for (i = slices; i >= 0; i--) { theta3 = i * (M_PI+M_PI) / slices; if (wire_p && i != 0) { - glVertex3f (lb.x, lb.y, lb.z); - glVertex3f (la.x, la.y, la.z); + array[out++].p = lb; /* vertex */ + array[out++].p = la; /* vertex */ } - e.x = cos (theta2) * cos(theta3); - e.y = sin (theta2); - e.z = cos (theta2) * sin(theta3); - p.x = c.x + r * e.x; - p.y = c.y + r * e.y; - p.z = c.z + r * e.z; - - glNormal3f (e.x, e.y, e.z); - glTexCoord2f (i / (double)slices, - 2*(j+1) / (double)stacks2); - glVertex3f (p.x, p.y, p.z); + n.x = cos (theta2) * cos(theta3); + n.y = sin (theta2); + n.z = cos (theta2) * sin(theta3); + p.x = c.x + r * n.x; + p.y = c.y + r * n.y; + p.z = c.z + r * n.z; + + array[out].p = p; /* vertex */ + array[out].n = n; /* normal */ + array[out].s = i / (GLfloat) slices; /* texture */ + array[out].t = 2*(j+1) / (GLfloat) stacks2; + out++; + if (wire_p) la = p; - e.x = cos(theta1) * cos(theta3); - e.y = sin(theta1); - e.z = cos(theta1) * sin(theta3); - p.x = c.x + r * e.x; - p.y = c.y + r * e.y; - p.z = c.z + r * e.z; - - glNormal3f (e.x, e.y, e.z); - glTexCoord2f (i / (double)slices, - 2*j / (double)stacks2); - glVertex3f (p.x, p.y, p.z); + n.x = cos(theta1) * cos(theta3); + n.y = sin(theta1); + n.z = cos(theta1) * sin(theta3); + p.x = c.x + r * n.x; + p.y = c.y + r * n.y; + p.z = c.z + r * n.z; + + array[out].p = p; /* vertex */ + array[out].n = n; /* normal */ + array[out].s = i / (GLfloat) slices; /* texture */ + array[out].t = 2*j / (GLfloat) stacks2; + out++; + + if (out >= arraysize) abort(); + if (wire_p) lb = p; polys++; } - glEnd(); } + + END: + + glEnableClientState (GL_VERTEX_ARRAY); + glEnableClientState (GL_NORMAL_ARRAY); + glEnableClientState (GL_TEXTURE_COORD_ARRAY); + + glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p); + glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); + glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + + glDrawArrays (mode, 0, out); + + free (array); + return polys; } diff --git a/hacks/glx/spheremonics.c b/hacks/glx/spheremonics.c index f3a03f2b..7bd9967a 100644 --- a/hacks/glx/spheremonics.c +++ b/hacks/glx/spheremonics.c @@ -302,23 +302,25 @@ draw_circle (ModeInfo *mi, Bool teeth_p) static void draw_bounding_box (ModeInfo *mi) { - spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)]; + /* spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)]; */ static const GLfloat c1[4] = { 0.2, 0.2, 0.6, 1.0 }; static const GLfloat c2[4] = { 1.0, 0.0, 0.0, 1.0 }; int wire = MI_IS_WIREFRAME(mi); - GLfloat x1 = cc->bbox[0].x; - GLfloat y1 = cc->bbox[0].y; - GLfloat z1 = cc->bbox[0].z; - GLfloat x2 = cc->bbox[1].x; - GLfloat y2 = cc->bbox[1].y; - GLfloat z2 = cc->bbox[1].z; + GLfloat x1,y1,z1,x2,y2,z2; -#if 1 +# if 0 + x1 = cc->bbox[0].x; + y1 = cc->bbox[0].y; + z1 = cc->bbox[0].z; + x2 = cc->bbox[1].x; + y2 = cc->bbox[1].y; + z2 = cc->bbox[1].z; +# else x1 = y1 = z1 = -0.5; x2 = y2 = z2 = 0.5; -#endif +# endif if (do_bbox && !wire) { @@ -690,8 +692,6 @@ init_spheremonics (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - cc = &ccs[MI_SCREEN(mi)]; } cc = &ccs[MI_SCREEN(mi)]; diff --git a/hacks/glx/stairs.c b/hacks/glx/stairs.c index 3216dd37..bbfe5ff4 100644 --- a/hacks/glx/stairs.c +++ b/hacks/glx/stairs.c @@ -298,6 +298,7 @@ draw_sphere(int pos, int tick) glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialYellow); glDisable (GL_TEXTURE_2D); glShadeModel(GL_SMOOTH); + glFrontFace(GL_CW); polys += unit_sphere (32, 32, False); glShadeModel(GL_FLAT); glEnable (GL_TEXTURE_2D); diff --git a/hacks/glx/stonerview.c b/hacks/glx/stonerview.c index 0354431b..a92b6c57 100644 --- a/hacks/glx/stonerview.c +++ b/hacks/glx/stonerview.c @@ -88,8 +88,6 @@ init_stonerview (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - bp = &bps[MI_SCREEN(mi)]; } bp = &bps[MI_SCREEN(mi)]; diff --git a/hacks/glx/tangram.c b/hacks/glx/tangram.c index 5cbb0f22..a80f7b01 100644 --- a/hacks/glx/tangram.c +++ b/hacks/glx/tangram.c @@ -880,8 +880,6 @@ ENTRYPOINT void init_tangram(ModeInfo * mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - tp = &tps[MI_SCREEN(mi)]; } tp = &tps[MI_SCREEN(mi)]; diff --git a/hacks/glx/timetunnel.c b/hacks/glx/timetunnel.c index 18f38131..c7441019 100644 --- a/hacks/glx/timetunnel.c +++ b/hacks/glx/timetunnel.c @@ -585,7 +585,7 @@ l| |r tr0, tr1, tl0, tl1, l0 , l1 , - bl0, depth=0.3, zdepth=15.0; + depth=0.3, zdepth=15.0; /* zdepth is how far back tunnel goes */ /* depth is tex coord scale. low number = fast texture shifting */ @@ -601,7 +601,6 @@ l| |r tl1 = tl0 + half_floor; l0 = tr1; l1 = l0 + full_wall; - bl0 = l1; glMatrixMode(GL_TEXTURE); glLoadIdentity(); @@ -965,7 +964,6 @@ static void LoadTexture(ModeInfo * mi, char **fn, const char *filename, GLuint t tmpa = teximage->data[dtaidx + cchan]; tmpfa = (float) tmpa * boxdiv; /* box filter */ - blursum = 0.0; for (by = -boxsize ; by <= boxsize; by++) { for (bx = -boxsize ; bx <= boxsize; bx++) { indx = wrapVal(ix + bx, 0, teximage->width); @@ -1057,8 +1055,6 @@ init_tunnel (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - tc = &tconf[MI_SCREEN(mi)]; } tc = &tconf[MI_SCREEN(mi)]; diff --git a/hacks/glx/topblock.c b/hacks/glx/topblock.c index ef3ca062..f794b197 100644 --- a/hacks/glx/topblock.c +++ b/hacks/glx/topblock.c @@ -189,10 +189,7 @@ init_topBlock (ModeInfo *mi) if (!tbs) { tbs = (topBlockSTATE *) calloc (MI_NUM_SCREENS(mi), sizeof (topBlockSTATE)); - if (!tbs) { - fprintf(stderr, "%s: out of memory\n", progname); - exit(1); - } + if (!tbs) abort(); } tb = &tbs[MI_SCREEN(mi)]; @@ -576,16 +573,18 @@ static void generateNewBlock(ModeInfo *mi) tb->numFallingBlocks++; llTail = tb->blockNodeRoot; if (llTail == NULL) { - if ((llCurrent = ((NODE*) malloc(sizeof(NODE)))) == NULL) { fprintf(stderr, "%s: out of memory.\n", progname); } - llTail = llCurrent; - tb->blockNodeRoot = llCurrent; + llCurrent = ((NODE*) malloc(sizeof(NODE))); + if (!llCurrent) abort(); + llTail = llCurrent; + tb->blockNodeRoot = llCurrent; } else { if (tb->numFallingBlocks>=maxFalling) { /* recycle */ llCurrent=llTail->next; tb->blockNodeRoot=llCurrent->next; } else { - if ((llCurrent = ((NODE*) malloc(sizeof(NODE)))) == NULL) { fprintf(stderr, "%s: out of memory..\n", progname); } + llCurrent = ((NODE*) malloc(sizeof(NODE))); + if (!llCurrent) abort(); } while (llTail->next != NULL) { llTail = llTail->next; } /* find last item in list */ } diff --git a/hacks/glx/tube.c b/hacks/glx/tube.c index ec7589d1..a2168250 100644 --- a/hacks/glx/tube.c +++ b/hacks/glx/tube.c @@ -1,4 +1,4 @@ -/* tube, Copyright (c) 2001, 2003, 2007 Jamie Zawinski +/* tube, Copyright (c) 2001-2010 Jamie Zawinski * Utility functions to create tubes and cones in GL. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -26,6 +26,8 @@ #include "tube.h" +typedef struct { GLfloat x, y, z; } XYZ; + static int unit_tube (int faces, int smooth, int caps_p, int wire_p) { @@ -37,11 +39,20 @@ unit_tube (int faces, int smooth, int caps_p, int wire_p) GLfloat x, y, x0=0, y0=0; int z = 0; + int arraysize, out; + struct { XYZ p; XYZ n; GLfloat s, t; } *array; + + arraysize = (faces+1) * 6; + array = (void *) calloc (arraysize, sizeof(*array)); + if (! array) abort(); + out = 0; + + + /* #### texture coords are currently not being computed */ + + /* side walls */ - glFrontFace(GL_CCW); - glBegin (wire_p ? GL_LINES : (smooth ? GL_QUAD_STRIP : GL_QUADS)); - th = 0; x = 1; y = 0; @@ -56,13 +67,27 @@ unit_tube (int faces, int smooth, int caps_p, int wire_p) for (i = 0; i < faces; i++) { + array[out].p.x = x; /* bottom point A */ + array[out].p.y = 0; + array[out].p.z = y; + if (smooth) - glNormal3f(x, 0, y); + array[out].n = array[out].p; /* its own normal */ else - glNormal3f(x0, 0, y0); + { + array[out].n.x = x0; /* mid-plane normal */ + array[out].n.y = 0; + array[out].n.z = y0; + } + out++; + + + array[out].p.x = x; /* top point A */ + array[out].p.y = 1; + array[out].p.z = y; + array[out].n = array[out-1].n; /* same normal */ + out++; - glVertex3f(x, 0, y); - glVertex3f(x, 1, y); th += step; x = cos (th); @@ -73,32 +98,89 @@ unit_tube (int faces, int smooth, int caps_p, int wire_p) x0 = cos (th + s2); y0 = sin (th + s2); - glVertex3f(x, 1, y); - glVertex3f(x, 0, y); + array[out].p.x = x; /* top point B */ + array[out].p.y = 1; + array[out].p.z = y; + array[out].n = array[out-1].n; /* same normal */ + out++; + + + array[out] = array[out-3]; /* bottom point A */ + out++; + + array[out] = array[out-2]; /* top point B */ + out++; + + array[out].p.x = x; /* bottom point B */ + array[out].p.y = 0; + array[out].p.z = y; + array[out].n = array[out-1].n; /* same normal */ + out++; + + polys++; } + polys++; + if (out >= arraysize) abort(); } - glEnd(); + + glEnableClientState (GL_VERTEX_ARRAY); + glEnableClientState (GL_NORMAL_ARRAY); + glEnableClientState (GL_TEXTURE_COORD_ARRAY); + + glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p); + glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); + glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + + glDrawArrays ((wire_p ? GL_LINES : + (smooth ? GL_TRIANGLE_STRIP : GL_TRIANGLES)), + 0, out); + /* End caps */ if (caps_p) for (z = 0; z <= 1; z++) { - glFrontFace(z == 0 ? GL_CCW : GL_CW); - glNormal3f(0, (z == 0 ? -1 : 1), 0); - glBegin(wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN); - if (! wire_p) glVertex3f(0, z, 0); - for (i = 0, th = 0; i <= faces; i++) + out = 0; + if (! wire_p) { + array[out].p.x = 0; + array[out].p.y = z; + array[out].p.z = 0; + + array[out].n.x = 0; + array[out].n.y = (z == 0 ? -1 : 1); + array[out].n.z = 0; + out++; + } + + th = 0; + for (i = (z == 0 ? 0 : faces); + (z == 0 ? i <= faces : i >= 0); + i += (z == 0 ? 1 : -1)) { GLfloat x = cos (th); GLfloat y = sin (th); - glVertex3f(x, z, y); - th += step; + + array[out] = array[0]; /* same normal and texture */ + array[out].p.x = x; + array[out].p.y = z; + array[out].p.z = y; + out++; + + th += (z == 0 ? step : -step); + polys++; + if (out >= arraysize) abort(); } - glEnd(); + + glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p); + glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); + glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + + glDrawArrays ((wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN), 0, out); } + return polys; } @@ -113,10 +195,20 @@ unit_cone (int faces, int smooth, int cap_p, int wire_p) GLfloat th; GLfloat x, y, x0, y0; + int arraysize, out; + struct { XYZ p; XYZ n; GLfloat s, t; } *array; + + arraysize = (faces+1) * 3; + array = (void *) calloc (arraysize, sizeof(*array)); + if (! array) abort(); + out = 0; + + + /* #### texture coords are currently not being computed */ + + /* side walls */ - glFrontFace(GL_CW); - glBegin(wire_p ? GL_LINES : GL_TRIANGLES); th = 0; x = 1; @@ -126,11 +218,30 @@ unit_cone (int faces, int smooth, int cap_p, int wire_p) for (i = 0; i < faces; i++) { - glNormal3f(x0, 0, y0); - glVertex3f(0, 1, 0); + array[out].p.x = x; /* bottom point A */ + array[out].p.y = 0; + array[out].p.z = y; + + if (smooth) + array[out].n = array[out].p; /* its own normal */ + else + { + array[out].n.x = x0; /* mid-plane normal */ + array[out].n.y = 0; + array[out].n.z = y0; + } + out++; + + + array[out].p.x = 0; /* tip point */ + array[out].p.y = 1; + array[out].p.z = 0; + + array[out].n.x = x0; /* mid-plane normal */ + array[out].n.y = 0; + array[out].n.z = y0; + out++; - if (smooth) glNormal3f(x, 0, y); - glVertex3f(x, 0, y); th += step; x0 = cos (th + s2); @@ -138,30 +249,74 @@ unit_cone (int faces, int smooth, int cap_p, int wire_p) x = cos (th); y = sin (th); - if (smooth) glNormal3f(x, 0, y); - glVertex3f(x, 0, y); + array[out].p.x = x; /* bottom point B */ + array[out].p.y = 0; + array[out].p.z = y; + + if (smooth) + array[out].n = array[out].p; /* its own normal */ + else + array[out].n = array[out-1].n; /* same normal as other two */ + out++; + + + if (out >= arraysize) abort(); polys++; } - glEnd(); + + glEnableClientState (GL_VERTEX_ARRAY); + glEnableClientState (GL_NORMAL_ARRAY); + glEnableClientState (GL_TEXTURE_COORD_ARRAY); + + glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p); + glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); + glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + + glDrawArrays ((wire_p ? GL_LINES : GL_TRIANGLES), 0, out); + /* End cap */ if (cap_p) { - glFrontFace(GL_CCW); - glNormal3f(0, -1, 0); - glBegin(wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN); - if (! wire_p) glVertex3f(0, 0, 0); + out = 0; + + if (! wire_p) + { + array[out].p.x = 0; + array[out].p.y = 0; + array[out].p.z = 0; + + array[out].n.x = 0; + array[out].n.y = -1; + array[out].n.z = 0; + out++; + } + for (i = 0, th = 0; i <= faces; i++) { GLfloat x = cos (th); GLfloat y = sin (th); - glVertex3f(x, 0, y); + + array[out] = array[0]; /* same normal and texture */ + array[out].p.x = x; + array[out].p.y = 0; + array[out].p.z = y; + out++; th += step; polys++; + if (out >= arraysize) abort(); } - glEnd(); + + glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p); + glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); + glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + + glDrawArrays ((wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN), 0, out); } + + free (array); + return polys; } diff --git a/hacks/glx/tunnel_draw.c b/hacks/glx/tunnel_draw.c index c87fea9d..8230ca08 100644 --- a/hacks/glx/tunnel_draw.c +++ b/hacks/glx/tunnel_draw.c @@ -207,6 +207,7 @@ static void LoadPath(struct tunnel_state *st) } else { + path1 = st->path; path2 = (tnPath *)malloc(sizeof(tnPath)); path1->next = path2; path1 = path2; @@ -249,7 +250,9 @@ void DrawTunnel(struct tunnel_state *st, cmpos = st->cam_pos; /* Get current curve */ - if (st->cam_pos->next->next->next) + if (st->cam_pos->next && + st->cam_pos->next->next && + st->cam_pos->next->next->next) { p1 = st->cam_pos; for (i=0; i<4; i++) diff --git a/hacks/glx/voronoi.c b/hacks/glx/voronoi.c index 2b4bbf80..b207bbc0 100644 --- a/hacks/glx/voronoi.c +++ b/hacks/glx/voronoi.c @@ -445,8 +445,6 @@ init_voronoi (ModeInfo *mi) fprintf(stderr, "%s: out of memory\n", progname); exit(1); } - - vp = &vps[MI_SCREEN(mi)]; } vp = &vps[MI_SCREEN(mi)]; diff --git a/hacks/images/molecules/salvinorin.pdb b/hacks/images/molecules/salvinorin.pdb new file mode 100644 index 00000000..6ac445b2 --- /dev/null +++ b/hacks/images/molecules/salvinorin.pdb @@ -0,0 +1,92 @@ +HEADER Salvinorin A: A dissociative hallucinogen, kappa opioid receptor agonist +ATOM 1 O 0 -1.578 3.509 1.054 0.00 0.00 O+0 +ATOM 2 O 0 -0.661 -3.341 -1.950 0.00 0.00 O+0 +ATOM 3 O 0 -0.961 -0.736 -2.292 0.00 0.00 O+0 +ATOM 4 O 0 0.223 4.284 1.789 0.00 0.00 O+0 +ATOM 5 O 0 4.133 -2.520 1.067 0.00 0.00 O+0 +ATOM 6 O 0 4.305 -2.225 -1.047 0.00 0.00 O+0 +ATOM 7 O 0 -5.473 1.972 2.519 0.00 0.00 O+0 +ATOM 8 O 0 -1.864 -4.598 -3.067 0.00 0.00 O+0 +ATOM 9 C 0 1.875 -0.263 -0.355 0.00 0.00 C+0 +ATOM 10 C 0 -0.335 1.379 -0.322 0.00 0.00 C+0 +ATOM 11 C 0 0.290 -0.090 -0.402 0.00 0.00 C+0 +ATOM 12 C 0 0.295 2.080 0.949 0.00 0.00 C+0 +ATOM 13 C 0 2.416 0.613 0.838 0.00 0.00 C+0 +ATOM 14 C 0 2.218 -1.798 -0.082 0.00 0.00 C+0 +ATOM 15 C 0 1.854 2.057 0.955 0.00 0.00 C+0 +ATOM 16 C 0 -1.892 1.349 -0.054 0.00 0.00 C+0 +ATOM 17 C 0 -0.312 -1.076 -1.312 0.00 0.00 C+0 +ATOM 18 C 0 1.427 -2.783 -1.008 0.00 0.00 C+0 +ATOM 19 C 0 2.599 0.182 -1.678 0.00 0.00 C+0 +ATOM 20 C 0 -0.152 2.242 -1.623 0.00 0.00 C+0 +ATOM 21 C 0 -0.102 -2.502 -1.056 0.00 0.00 C+0 +ATOM 22 C 0 -2.483 2.720 0.438 0.00 0.00 C+0 +ATOM 23 C 0 -0.364 3.344 1.274 0.00 0.00 C+0 +ATOM 24 C 0 3.632 -2.188 -0.023 0.00 0.00 C+0 +ATOM 25 C 0 -3.721 2.668 1.259 0.00 0.00 C+0 +ATOM 26 C 0 -4.516 3.764 1.594 0.00 0.00 C+0 +ATOM 27 C 0 -4.363 1.580 1.857 0.00 0.00 C+0 +ATOM 28 C 0 -1.768 -3.894 -2.073 0.00 0.00 C+0 +ATOM 29 C 0 5.353 -2.949 1.401 0.00 0.00 C+0 +ATOM 30 C 0 -5.577 3.309 2.365 0.00 0.00 C+0 +ATOM 31 C 0 -2.903 -3.782 -1.178 0.00 0.00 C+0 +ATOM 32 H 0 -0.032 -0.494 0.566 0.00 0.00 H+0 +ATOM 33 H 0 0.021 1.488 1.831 0.00 0.00 H+0 +ATOM 34 H 0 2.176 0.125 1.788 0.00 0.00 H+0 +ATOM 35 H 0 3.509 0.668 0.818 0.00 0.00 H+0 +ATOM 36 H 0 1.806 -2.023 0.910 0.00 0.00 H+0 +ATOM 37 H 0 2.250 2.682 0.154 0.00 0.00 H+0 +ATOM 38 H 0 2.226 2.485 1.891 0.00 0.00 H+0 +ATOM 39 H 0 -2.454 1.020 -0.933 0.00 0.00 H+0 +ATOM 40 H 0 -2.074 0.590 0.706 0.00 0.00 H+0 +ATOM 41 H 0 1.574 -3.811 -0.660 0.00 0.00 H+0 +ATOM 42 H 0 1.827 -2.744 -2.026 0.00 0.00 H+0 +ATOM 43 H 0 2.260 -0.386 -2.545 0.00 0.00 H+0 +ATOM 44 H 0 2.509 1.228 -1.923 0.00 0.00 H+0 +ATOM 45 H 0 3.681 0.081 -1.611 0.00 0.00 H+0 +ATOM 46 H 0 -0.558 1.749 -2.507 0.00 0.00 H+0 +ATOM 47 H 0 -0.638 3.215 -1.562 0.00 0.00 H+0 +ATOM 48 H 0 0.868 2.520 -1.836 0.00 0.00 H+0 +ATOM 49 H 0 -0.497 -2.735 -0.061 0.00 0.00 H+0 +ATOM 50 H 0 -2.764 3.279 -0.460 0.00 0.00 H+0 +ATOM 51 H 0 -4.357 4.736 1.321 0.00 0.00 H+0 +ATOM 52 H 0 -4.064 0.605 1.821 0.00 0.00 H+0 +ATOM 53 H 0 5.360 -3.151 2.472 0.00 0.00 H+0 +ATOM 54 H 0 6.112 -2.193 1.186 0.00 0.00 H+0 +ATOM 55 H 0 5.605 -3.873 0.875 0.00 0.00 H+0 +ATOM 56 H 0 -6.323 3.886 2.756 0.00 0.00 H+0 +ATOM 57 H 0 -3.222 -2.742 -1.105 0.00 0.00 H+0 +ATOM 58 H 0 -2.636 -4.143 -0.184 0.00 0.00 H+0 +ATOM 59 H 0 -3.759 -4.370 -1.521 0.00 0.00 H+0 +CONECT 1 22 23 0 0 NONE 65 +CONECT 2 21 28 0 0 NONE 66 +CONECT 3 17 0 0 0 NONE 67 +CONECT 4 23 0 0 0 NONE 68 +CONECT 5 24 29 0 0 NONE 69 +CONECT 6 24 0 0 0 NONE 70 +CONECT 7 27 30 0 0 NONE 71 +CONECT 8 28 0 0 0 NONE 72 +CONECT 9 11 13 14 19 NONE 73 +CONECT 10 11 12 16 20 NONE 74 +CONECT 11 9 10 17 32 NONE 75 +CONECT 12 10 15 23 33 NONE 76 +CONECT 13 9 15 34 35 NONE 77 +CONECT 14 9 18 24 36 NONE 78 +CONECT 15 12 13 37 38 NONE 79 +CONECT 16 10 22 39 40 NONE 80 +CONECT 17 3 11 21 0 NONE 81 +CONECT 18 14 21 41 42 NONE 82 +CONECT 19 9 43 44 45 NONE 83 +CONECT 20 10 46 47 48 NONE 84 +CONECT 21 2 17 18 49 NONE 85 +CONECT 22 1 16 25 50 NONE 86 +CONECT 23 1 4 12 0 NONE 87 +CONECT 24 5 6 14 0 NONE 88 +CONECT 25 22 26 27 0 NONE 89 +CONECT 26 25 30 51 0 NONE 90 +CONECT 27 7 25 52 0 NONE 91 +CONECT 28 2 8 31 0 NONE 92 +CONECT 29 5 53 54 55 NONE 93 +CONECT 30 7 26 56 0 NONE 94 +CONECT 31 28 57 58 59 NONE 95 +END NONE 96 diff --git a/hacks/interaggregate.c b/hacks/interaggregate.c index 986acd53..6e48f3f2 100644 --- a/hacks/interaggregate.c +++ b/hacks/interaggregate.c @@ -290,7 +290,6 @@ static inline unsigned long rgb2point(int depth, int r, int g, int b) switch(depth) { case 32: - ret = 0xff000000; case 24: #ifdef HAVE_COCOA /* This program idiotically does not go through a color map, so diff --git a/hacks/kaleidescope.c b/hacks/kaleidescope.c index a59332a2..8c3f80b9 100644 --- a/hacks/kaleidescope.c +++ b/hacks/kaleidescope.c @@ -126,14 +126,11 @@ static XrmOptionDescRec kaleidescope_options [] = { static void krandom_color(GLOBAL *g, XColor *color) { - int r; - r = random() % 3; - if((g->color_mode == 0) || (g->color_mode == 1)) { - color->blue = ((r = random()) % g->bluerange) + g->bluemin; - color->green = ((r = random()) % g->greenrange) + g->greenmin; - color->red = ((r = random()) % g->redrange) + g->redmin; + color->blue = (random() % g->bluerange) + g->bluemin; + color->green = (random() % g->greenrange) + g->greenmin; + color->red = (random() % g->redrange) + g->redmin; if(!XAllocColor(g->dpy, g->cmap, color)) { color->pixel = g->default_fg_pixel; diff --git a/hacks/metaballs.c b/hacks/metaballs.c index a7a0591d..0e46de67 100644 --- a/hacks/metaballs.c +++ b/hacks/metaballs.c @@ -200,7 +200,7 @@ static void Initialize( struct state *st ) { XGCValues gcValues; XWindowAttributes XWinAttribs; - int iBitsPerPixel, i, j; + int /*iBitsPerPixel,*/ i, j; unsigned int distance_squared; float fraction; @@ -208,6 +208,7 @@ static void Initialize( struct state *st ) XGetWindowAttributes( st->dpy, st->window, &XWinAttribs ); /* Find the preferred bits-per-pixel. (jwz) */ +#if 0 { int pfvc = 0; XPixmapFormatValues *pfv = XListPixmapFormats( st->dpy, &pfvc ); @@ -220,6 +221,7 @@ static void Initialize( struct state *st ) if( pfv ) XFree (pfv); } +#endif /* Create the GC. */ st->gc = XCreateGC( st->dpy, st->window, 0, &gcValues ); diff --git a/hacks/noseguy.c b/hacks/noseguy.c index cae0397f..144e6859 100644 --- a/hacks/noseguy.c +++ b/hacks/noseguy.c @@ -110,7 +110,7 @@ init_images (struct state *st) images[i++] = &st->left_front; images[i++] = &st->right_front; images[i++] = &st->front; - images[i++] = &st->down; + images[i] = &st->down; #if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM) @@ -122,7 +122,7 @@ init_images (struct state *st) bits[i++] = nose_f2_xpm; bits[i++] = nose_f3_xpm; bits[i++] = nose_f1_xpm; - bits[i++] = nose_f4_xpm; + bits[i] = nose_f4_xpm; for (i = 0; i < sizeof (images) / sizeof(*images); i++) { diff --git a/hacks/pacman.c b/hacks/pacman.c index cf708f4a..01a83831 100644 --- a/hacks/pacman.c +++ b/hacks/pacman.c @@ -276,11 +276,9 @@ check_death (ModeInfo * mi, pacmangamestruct * pp) Display *display = MI_DISPLAY (mi); Window window = MI_WINDOW (mi); unsigned int ghost; - int alldead; if (pp->pacman.aistate == ps_dieing) return; - alldead = 1; for (ghost = 0; ghost < pp->nghosts; ghost++) { /* The ghost have to be scared before you can kill them */ @@ -306,11 +304,7 @@ check_death (ModeInfo * mi, pacmangamestruct * pp) } continue; } - - alldead = 0; } - - } /* Resets state of ghosts + pacman. Creates a new level, draws that level. */ @@ -831,8 +825,6 @@ draw_pacman_sprite (ModeInfo * mi) pp->pacman.oldcf = pp->pacman.cf; pp->pacman.oldrf = pp->pacman.rf; } - old_mask_dir = dir; - old_mask_mouth = pp->pm_mouth; } #if 0 diff --git a/hacks/pacman_ai.c b/hacks/pacman_ai.c index 1452226a..070f9aa5 100644 --- a/hacks/pacman_ai.c +++ b/hacks/pacman_ai.c @@ -609,10 +609,8 @@ static void pac_chasing (pacmangamestruct * pp, pacmanstruct * p) { int posdirs[DIRVECS], nrdirs, i, highest = -(1 << 16), - score, dir = 0, prox, worst = 0; - int vx, vy; - - prox = pac_ghost_prox_and_vector (pp, p, &vx, &vy); + score, dir = 0, worst = 0; + int vx = 0, vy = 0; nrdirs = pac_get_posdirs (pp, p, posdirs); @@ -629,7 +627,6 @@ pac_chasing (pacmangamestruct * pp, pacmanstruct * p) } nrdirs--; posdirs[worst] = 0; - highest = -(1 << 16); /* get last possible direction if all else fails */ diff --git a/hacks/petri.c b/hacks/petri.c index 03f3bf42..860d0349 100644 --- a/hacks/petri.c +++ b/hacks/petri.c @@ -243,7 +243,6 @@ static void setup_display (struct state *st) { XWindowAttributes xgwa; - Colormap cmap; int cell_size = get_integer_resource (st->dpy, "size", "Integer"); int osize, alloc_size, oalloc; @@ -398,8 +397,6 @@ setup_display (struct state *st) st->mindeathspeed *= st->diaglim; st->maxdeathspeed *= st->diaglim; - cmap = xgwa.colormap; - st->windowWidth = xgwa.width; st->windowHeight = xgwa.height; diff --git a/hacks/ripples.c b/hacks/ripples.c index fac61995..e030b1cd 100644 --- a/hacks/ripples.c +++ b/hacks/ripples.c @@ -703,6 +703,7 @@ sinc(struct state *st, double x) int i; i = (int)(x * TABLE + 0.5); if (i >= TABLE) i = (TABLE-1) - (i-(TABLE-1)); + if (i < 0) return 0.; return st->cos_tab[i]; #elif 0 return cos(x * M_PI/2); @@ -732,7 +733,7 @@ add_circle_drop(struct state *st, int x, int y, int radius, int dheight) r = cx*cx + cy*cy; if (r > r2) break; buf[xx + yy*st->width] = - (short)(dheight * sinc(st, sqrt(r)/radius)); + (short)(dheight * sinc(st, (radius > 0) ? sqrt(r)/radius : 0)); } } diff --git a/hacks/screenhack.c b/hacks/screenhack.c index bd251dc5..63121165 100644 --- a/hacks/screenhack.c +++ b/hacks/screenhack.c @@ -444,7 +444,7 @@ screenhack_table_handle_events (Display *dpy, ft->reshape_cb (dpy, window, closure, event.xconfigure.width, event.xconfigure.height); #ifdef DEBUG_PAIR - if (event.xany.window == window2) + if (window2 && event.xany.window == window2) ft->reshape_cb (dpy, window2, closure2, event.xconfigure.width, event.xconfigure.height); #endif @@ -453,7 +453,7 @@ screenhack_table_handle_events (Display *dpy, (! (event.xany.window == window ? ft->event_cb (dpy, window, closure, &event) #ifdef DEBUG_PAIR - : event.xany.window == window2 + : (window2 && event.xany.window == window2) ? ft->event_cb (dpy, window2, closure2, &event) #endif : 0))) diff --git a/hacks/shadebobs.c b/hacks/shadebobs.c index 39040ea3..881740c9 100644 --- a/hacks/shadebobs.c +++ b/hacks/shadebobs.c @@ -296,12 +296,13 @@ static void Initialize( struct state *st ) { XGCValues gcValues; XWindowAttributes XWinAttribs; - int iBitsPerPixel; + /*int iBitsPerPixel;*/ /* Create the Image for drawing */ XGetWindowAttributes( st->dpy, st->window, &XWinAttribs ); - /* Find the preferred bits-per-pixel. (jwz) */ +#if 0 + /* Find the preferred bits-per-pixel. (jwz) */ { int i, pfvc = 0; XPixmapFormatValues *pfv = XListPixmapFormats( st->dpy, &pfvc ); @@ -314,6 +315,7 @@ static void Initialize( struct state *st ) if( pfv ) XFree (pfv); } +#endif /* Create the GC. */ st->gc = XCreateGC( st->dpy, st->window, 0, &gcValues ); diff --git a/hacks/slidescreen.c b/hacks/slidescreen.c index 60d2fd4c..a44e1153 100644 --- a/hacks/slidescreen.c +++ b/hacks/slidescreen.c @@ -47,7 +47,6 @@ slidescreen_init (Display *dpy, Window window) { struct state *st = (struct state *) calloc (1, sizeof(*st)); XWindowAttributes xgwa; - Visual *visual; XGCValues gcv; long gcflags; @@ -58,7 +57,6 @@ slidescreen_init (Display *dpy, Window window) st->window, 0, 0); st->start_time = time ((time_t) 0); - visual = xgwa.visual; st->max_width = xgwa.width; st->max_height = xgwa.height; diff --git a/hacks/slip.c b/hacks/slip.c index 0c665ea7..e0b0ea4f 100644 --- a/hacks/slip.c +++ b/hacks/slip.c @@ -30,7 +30,8 @@ static const char sccsid[] = "@(#)slip.c 5.00 2000/11/01 xlockmore"; # define DEFAULTS "*delay: 50000 \n" \ "*count: 35 \n" \ "*cycles: 50 \n" \ - "*ncolors: 200 \n" + "*ncolors: 200 \n" \ + "*fpsSolid: true \n" # define refresh_slip 0 # define slip_handle_event 0 diff --git a/hacks/speedmine.c b/hacks/speedmine.c index 1ff2db11..96a880e5 100644 --- a/hacks/speedmine.c +++ b/hacks/speedmine.c @@ -1105,7 +1105,7 @@ render_speedmine (struct state *st, Drawable d) } else { t = MAX(begin_at(st), TERRAIN_LENGTH/4); /*t = TERRAIN_LENGTH/4; dt = 2; */ - dt = (t >= 3*TERRAIN_LENGTH/4 ? 1 : 2); + /*dt = (t >= 3*TERRAIN_LENGTH/4 ? 1 : 2);*/ i = (st->nearest -t + TERRAIN_LENGTH) % TERRAIN_LENGTH; render_block (st, d, st->tunnelend_gc, t); } diff --git a/hacks/spotlight.c b/hacks/spotlight.c index d8b76b24..aade77df 100644 --- a/hacks/spotlight.c +++ b/hacks/spotlight.c @@ -91,7 +91,7 @@ spotlight_init (Display *dpy, Window window) XWindowAttributes xgwa; long gcflags; Colormap cmap; - unsigned long fg, bg; + unsigned long bg; GC clip_gc; Pixmap clip_pm; @@ -104,7 +104,6 @@ spotlight_init (Display *dpy, Window window) st->sizex = xgwa.width; st->sizey = xgwa.height; cmap = xgwa.colormap; - fg = get_pixel_resource (st->dpy, cmap, "foreground", "Foreground"); bg = get_pixel_resource (st->dpy, cmap, "background", "Background"); /* read parameters, keep em sane */ diff --git a/hacks/strange.c b/hacks/strange.c index dce0182e..8343d010 100644 --- a/hacks/strange.c +++ b/hacks/strange.c @@ -607,7 +607,7 @@ init_strange(ModeInfo * mi) #define A Attractor if (useAccumulator) { XWindowAttributes xgwa; - int i,j,got_color; + int i,j; XGetWindowAttributes (display, window, &xgwa); /* cmap = xgwa.colormap; */ /* cmap = XCreateColormap(display, window, MI_VISUAL(mi), AllocAll); */ @@ -638,7 +638,7 @@ init_strange(ModeInfo * mi) cols[i].green = 65536*(li-FULLBLUE)/(256-FULLBLUE); cols[i].blue = 65535; } - got_color = XAllocColor (display, xgwa.colormap, &cols[i]); + XAllocColor (display, xgwa.colormap, &cols[i]); /* if (!XAllocColor(MI_DISPLAY(mi), cmap, &cols[i])) { if (!XAllocColor(display, cmap, &cols[i])) { diff --git a/hacks/substrate.c b/hacks/substrate.c index 82c2bacd..ce9c696b 100644 --- a/hacks/substrate.c +++ b/hacks/substrate.c @@ -318,7 +318,6 @@ static inline unsigned long rgb2point(int depth, int r, int g, int b) switch(depth) { case 32: - ret = 0xff000000; case 24: #ifdef HAVE_COCOA /* This program idiotically does not go through a color map, so @@ -494,16 +493,11 @@ movedrawcrack(struct state *st, GC fgc, struct field *f, int cracknum) cr->y += ((float) STEP * sin(cr->t * M_PI/180)); } else { - float oldx, oldy; - - oldx = cr->x; - oldy = cr->y; - cr->x += ((float) cr->ys * cos(cr->t * M_PI/180)); cr->y += ((float) cr->ys * sin(cr->t * M_PI/180)); cr->x += ((float) cr->xs * cos(cr->t * M_PI/180 - M_PI / 2)); - cr->x += ((float) cr->xs * sin(cr->t * M_PI/180 - M_PI / 2)); + cr->y += ((float) cr->xs * sin(cr->t * M_PI/180 - M_PI / 2)); cr->t += cr->t_inc; cr->degrees_drawn += abs(cr->t_inc); diff --git a/hacks/triangle.c b/hacks/triangle.c index 9915b36e..3f413432 100644 --- a/hacks/triangle.c +++ b/hacks/triangle.c @@ -301,6 +301,8 @@ draw_triangle (ModeInfo * mi) { free_colors(mi->dpy, mi->xgwa.colormap, mi->colors, mi->npixels); + mi->npixels = + get_integer_resource (mi->dpy, "ncolors", "Integer"); make_smooth_colormap (mi->dpy, mi->xgwa.visual, mi->xgwa.colormap, mi->colors, &mi->npixels, diff --git a/hacks/vermiculate.c b/hacks/vermiculate.c index c6069e42..b96d3dc8 100644 --- a/hacks/vermiculate.c +++ b/hacks/vermiculate.c @@ -264,7 +264,7 @@ bordupdate (struct state *st) for (x = xmin; x <= xmax; x++) sp (st, x, ybord, st->bordcol); for (y = ymin; y <= ymax; y++) - sp (st, ybord, y, st->bordcol); + sp (st, xbord, y, st->bordcol); } } diff --git a/hacks/webcollage-cocoa.m b/hacks/webcollage-cocoa.m index c9f628ab..b3d470f2 100644 --- a/hacks/webcollage-cocoa.m +++ b/hacks/webcollage-cocoa.m @@ -85,7 +85,7 @@ display_image (state *st, const char *file) NSImage *image = [[NSImage alloc] initWithContentsOfFile: [NSString stringWithCString: file - encoding: kCFStringEncodingUTF8]]; + encoding: NSUTF8StringEncoding]]; if (! image) { fprintf (stderr, "webcollage: failed to load \"%s\"\n", file); diff --git a/hacks/webcollage-helper-cocoa.m b/hacks/webcollage-helper-cocoa.m index f05aee16..6c6e9d2b 100644 --- a/hacks/webcollage-helper-cocoa.m +++ b/hacks/webcollage-helper-cocoa.m @@ -214,6 +214,7 @@ bevel_image (NSImage *img, int bevel_pct, fraction: 1.0]; [img unlockFocus]; + [rep release]; [bevel_img release]; if (verbose_p) @@ -374,7 +375,7 @@ main (int argc, char **argv) s = argv[i++]; if (1 != sscanf (s, " %d %c", &to_x, &dummy)) usage(); s = argv[i++]; if (1 != sscanf (s, " %d %c", &to_y, &dummy)) usage(); s = argv[i++]; if (1 != sscanf (s, " %d %c", &w, &dummy)) usage(); - s = argv[i++]; if (1 != sscanf (s, " %d %c", &h, &dummy)) usage(); + s = argv[i]; if (1 != sscanf (s, " %d %c", &h, &dummy)) usage(); bevel_pct = 10; /* #### */ diff --git a/hacks/wormhole.c b/hacks/wormhole.c index 631b42b8..0e55eabd 100644 --- a/hacks/wormhole.c +++ b/hacks/wormhole.c @@ -101,16 +101,16 @@ static int gang( int x1, int y1, int x2, int y2 ) tang = 90; else tang = 270; - } - if ( y1 == y2 ) { + } else if ( y1 == y2 ) { if ( x1 < x2 ) tang = 0; else tang = 180; - } else - tang = (int)(0.5+atan2( -(y2-y1), x2 - x1 ) * 180.0 / M_PI ); + } else { + tang = (int)(0.5+atan2( -(y2-y1), x2 - x1 ) * 180.0 / M_PI ); + } while ( tang < 0 ) tang += 360; @@ -170,7 +170,6 @@ static void initColorChanger( struct state *st, color_changer * ch ) { int q; - int min, max; XColor old_color, new_color; ch->shade_max = 2048; @@ -185,9 +184,6 @@ static void initColorChanger( struct state *st, color_changer * ch ) initXColor( &new_color ); for ( q = 0; q < ch->shade_max; q += ch->shade_use ){ - min = q; - max = q + ch->shade_use; - if ( max >= ch->shade_max ) max = ch->shade_max-1; blend_palette( ch->shade + q, ch->shade_use, &old_color, &new_color ); old_color = new_color; diff --git a/hacks/xjack.c b/hacks/xjack.c index b101f857..55134d91 100644 --- a/hacks/xjack.c +++ b/hacks/xjack.c @@ -62,6 +62,10 @@ xjack_reshape (Display *dpy, Window window, void *closure, st->rows--; st->columns--; + /* If the window is stupidly small, just truncate. */ + if (st->rows < 4) st->rows = 4; + if (st->columns < 12) st->columns = 12; + if (st->y > st->rows) st->y = st->rows-1; if (st->x > st->columns) st->x = st->columns-2; @@ -116,9 +120,12 @@ xjack_init (Display *dpy, Window window) xjack_reshape (dpy, window, st, st->xgwa.width, st->xgwa.height); - st->left = 0xFF & (random() % ((st->columns / 2)+1)); - st->right = st->left + (0xFF & (random() % (st->columns - st->left - 10) - + 10)); + if (st->columns >= 21) + { + st->left = 0xFF & (random() % ((st->columns / 2)+1)); + st->right = st->left + (0xFF & (random() % (st->columns - st->left - 10) + + 10)); + } st->x = 0; st->y = 0; diff --git a/hacks/xlockmore.c b/hacks/xlockmore.c index 34cffeb1..ca4f1493 100644 --- a/hacks/xlockmore.c +++ b/hacks/xlockmore.c @@ -282,7 +282,6 @@ xlockmore_init (Display *dpy, Window window, XGCValues gcv; XColor color; int i; - int orig_pause; Bool root_p; if (! xlmft) @@ -449,7 +448,6 @@ xlockmore_init (Display *dpy, Window window, mi->pause = 0; else if (mi->pause > 100000000) mi->pause = 100000000; - orig_pause = mi->pause; /* If this hack uses fonts (meaning, mentioned "font" in DEFAULTS) then load it. */ diff --git a/hacks/xmatrix.c b/hacks/xmatrix.c index 60fe09dd..6ac91a1a 100644 --- a/hacks/xmatrix.c +++ b/hacks/xmatrix.c @@ -502,6 +502,19 @@ init_spinners (m_state *state) } +static void +clear_spinners (m_state *state) +{ + int i; + for (i = 0; i < state->grid_width * state->grid_height; i++) + if (state->cells[i].spinner) + { + state->cells[i].spinner = 0; + state->cells[i].changed = 1; + } +} + + static void set_mode (m_state *, m_mode); @@ -563,12 +576,7 @@ init_drain (m_state *state) } /* Turn off all the spinners, else they never go away. */ - for (i = 0; i < state->grid_width * state->grid_height; i++) - if (state->cells[i].spinner) - { - state->cells[i].spinner = 0; - state->cells[i].changed = 1; - } + clear_spinners (state); } static Bool @@ -1176,6 +1184,7 @@ hack_text (m_state *state) { case TRACE_TEXT_A: case TRACE_TEXT_B: + clear_spinners (state); if (state->mode == TRACE_TEXT_A) { if (state->grid_width >= 52) @@ -1250,6 +1259,7 @@ hack_text (m_state *state) case KNOCK: { + clear_spinners (state); state->typing = ("\001Wake up, Neo...\n" "\001The Matrix has you...\n" "\001Follow the white rabbit.\n" @@ -1275,6 +1285,7 @@ hack_text (m_state *state) lot like Cisco IOS to me. (IOS is a descendant of VMS.) */ + clear_spinners (state); state->typing = # ifdef __GNUC__ __extension__ /* don't warn about "string length is greater than @@ -1564,7 +1575,7 @@ hack_matrix (m_state *state) if (state->mode == TRACE_A || state->mode == TRACE_B) bottom_feeder_p = True; - if (state->insert_top_p && state->insert_bottom_p) + else if (state->insert_top_p && state->insert_bottom_p) bottom_feeder_p = (random() & 1); else bottom_feeder_p = state->insert_bottom_p; diff --git a/hacks/xrayswarm.c b/hacks/xrayswarm.c index f53b9136..9b9faef7 100644 --- a/hacks/xrayswarm.c +++ b/hacks/xrayswarm.c @@ -482,8 +482,8 @@ static void computeColorIndices(struct state *st) if (st->graySIndex[st->trailLen-1-i] > 19) st->graySIndex[st->trailLen-1-i] = 19; } - schizoLength = st->trailLen/4; - if (schizoLength < 3) schizoLength = 3; + /*schizoLength = st->trailLen/4; + if (schizoLength < 3) schizoLength = 3;*/ /* red schizo */ for (i = 0; i < st->trailLen; i++) { /* redSIndex[trailLen-1-i] = diff --git a/hacks/zoom.c b/hacks/zoom.c index bee4176f..73b27b05 100644 --- a/hacks/zoom.c +++ b/hacks/zoom.c @@ -72,7 +72,7 @@ zoom_init (Display *dpy, Window window) XGCValues gcv; XWindowAttributes xgwa; Colormap cmap; - unsigned long fg, bg; + unsigned long bg; long gcflags; int nblocksx, nblocksy; @@ -83,7 +83,6 @@ zoom_init (Display *dpy, Window window) st->sizex = xgwa.width; st->sizey = xgwa.height; cmap = xgwa.colormap; - fg = get_pixel_resource(st->dpy, cmap, "foreground", "Foreground"); bg = get_pixel_resource(st->dpy, cmap, "background", "Background"); st->delay = get_integer_resource(st->dpy, "delay", "Integer"); diff --git a/po/._pt_BR.po b/po/._pt_BR.po new file mode 100644 index 0000000000000000000000000000000000000000..026e87053dccf299e360b1982e6266e011118d7f GIT binary patch literal 527 zcma)2%SyvQ6uqg63WD9}dO!-gXq-HnCaFl%w2F)36Vz21;}C;+b!H+e{)-F$McnuU zg1;i(VnuZ28D`GhbI-lZ9hh64hZ?|;MP&b&oRKLe8Z6>A0kn5yjBCrt|3GkZas;o3 zchia&?6CW%Y|#(lu=3*{ zS4^;6B{_$SGEJnS^hvAD6!iui1E0}AKnw{KKp;de@s{FZ7;k|D4$&{Qi|!1w33_zQ z6&P)g>S3>n*IKS)TGS`EG7_BUlHG9Olb&GrNt&>n927!Tam6Jk>!lj?jy8zGx5<>L zq{#JA-Oad^Eara03QcNI>KJXqHVupF7WF*cqiwsT3tnQQiz@C;<~lPP)?i`j{1GQd zXxbOU?3BOhZM;bl9Xm3ZMXA>rvLx*|?hXwGp3`&(X4te%yVZ2vcE9QNgH~W#u0yT% K!_Q}CSOcF2LvW1% literal 0 HcmV?d00001 diff --git a/po/POTFILES.in b/po/POTFILES.in index cd62c28f..6fd50302 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,4 +1,4 @@ -# Auto-generated: Tue Apr 13 13:37:16 PDT 2010 +# Auto-generated: Wed Sep 15 03:10:58 PDT 2010 driver/demo-Gtk-conf.c driver/demo-Gtk-support.c driver/demo-Gtk-widgets.c diff --git a/po/pt_BR.po b/po/pt_BR.po index 15d310b2..a0c049b9 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -2,492 +2,515 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: 5.11\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-02-13 12:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2010-06-17 10:58-0300\n" +"Last-Translator: Sérgio Brandão Cipolla \n" +"Language-Team: Debian-BR Project \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: driver/demo-Gtk-conf.c:818 msgid "Browse..." -msgstr "" +msgstr "Pesquisar..." #: driver/demo-Gtk-conf.c:1110 msgid "Select file." -msgstr "" +msgstr "Selecionar arquivo." #: driver/demo-Gtk-support.c:135 #, c-format msgid "Couldn't find pixmap file: %s" -msgstr "" +msgstr "Arquivo pixmap não encontrado: %s" -#: driver/demo-Gtk-support.c:147 driver/demo-Gtk-support.c:179 +#: driver/demo-Gtk-support.c:147 +#: driver/demo-Gtk-support.c:179 #, c-format msgid "Error loading pixmap file: %s" -msgstr "" +msgstr "Erro ao carregar o arquivo pixmap: %s" #: driver/demo-Gtk-support.c:182 #, c-format msgid "reason: %s\n" -msgstr "" +msgstr "razão: %s\n" -#: driver/demo-Gtk-widgets.c:161 driver/xscreensaver-demo.glade2.h:71 -#, fuzzy +#: driver/demo-Gtk-widgets.c:161 +#: driver/xscreensaver-demo.glade2.h:71 msgid "XScreenSaver" -msgstr "Propriedades da proteo de tela" +msgstr "XScreenSaver" -#: driver/demo-Gtk-widgets.c:182 driver/xscreensaver-demo.glade2.h:84 +#: driver/demo-Gtk-widgets.c:182 +#: driver/xscreensaver-demo.glade2.h:84 msgid "_File" -msgstr "" +msgstr "Ar_quivo" -#: driver/demo-Gtk-widgets.c:202 driver/xscreensaver-demo.glade2.h:76 +#: driver/demo-Gtk-widgets.c:202 +#: driver/xscreensaver-demo.glade2.h:76 msgid "_Blank Screen Now" -msgstr "" +msgstr "_Apagar a Tela Agora" #: driver/demo-Gtk-widgets.c:211 -msgid "" -"Activate the XScreenSaver daemon now (locking the screen if so configured.)" -msgstr "" +msgid "Activate the XScreenSaver daemon now (locking the screen if so configured.)" +msgstr "Ativar o daemon do XScreenSaver agora (bloqueando a tela se configurado assim)." -#: driver/demo-Gtk-widgets.c:215 driver/xscreensaver-demo.glade2.h:89 +#: driver/demo-Gtk-widgets.c:215 +#: driver/xscreensaver-demo.glade2.h:89 msgid "_Lock Screen Now" -msgstr "" +msgstr "_Bloquear a Tela Agora" #: driver/demo-Gtk-widgets.c:224 msgid "Lock the screen now (even if \"Lock Screen\" is unchecked.)" -msgstr "" +msgstr "Bloquear a tela agora (ainda que \"Bloquear Tela\" esteja desmarcado)." -#: driver/demo-Gtk-widgets.c:228 driver/xscreensaver-demo.glade2.h:87 +#: driver/demo-Gtk-widgets.c:228 +#: driver/xscreensaver-demo.glade2.h:87 msgid "_Kill Daemon" -msgstr "" +msgstr "_Interromper Daemon" #: driver/demo-Gtk-widgets.c:237 msgid "Tell the running XScreenSaver daemon to exit." -msgstr "" +msgstr "Informar o daemon do XScreenSaver em execução para sair." -#: driver/demo-Gtk-widgets.c:241 driver/xscreensaver-demo.glade2.h:98 +#: driver/demo-Gtk-widgets.c:241 +#: driver/xscreensaver-demo.glade2.h:98 msgid "_Restart Daemon" -msgstr "" +msgstr "_Reiniciar Daemon" #: driver/demo-Gtk-widgets.c:250 msgid "Kill and re-launch the XScreenSaver daemon." -msgstr "" +msgstr "Interromper e reiniciar o daemon do XScreenSaver." #: driver/demo-Gtk-widgets.c:263 msgid "_Exit" -msgstr "" +msgstr "_Sair" #: driver/demo-Gtk-widgets.c:272 -msgid "" -"Exit the xscreensaver-demo program (but leave the XScreenSaver daemon " -"running in the background.)" -msgstr "" +msgid "Exit the xscreensaver-demo program (but leave the XScreenSaver daemon running in the background.)" +msgstr "Sair do programa xscreensaver-demo (mas deixar o daemon do XScreenSaver em execução)." -#: driver/demo-Gtk-widgets.c:276 driver/xscreensaver-demo.glade2.h:85 +#: driver/demo-Gtk-widgets.c:276 +#: driver/xscreensaver-demo.glade2.h:85 msgid "_Help" -msgstr "" +msgstr "Aj_uda" -#: driver/demo-Gtk-widgets.c:296 driver/xscreensaver-demo.glade2.h:72 +#: driver/demo-Gtk-widgets.c:296 +#: driver/xscreensaver-demo.glade2.h:72 msgid "_About..." -msgstr "" +msgstr "_Sobre..." #: driver/demo-Gtk-widgets.c:305 msgid "Display version information." -msgstr "" +msgstr "Exibir informação da versão." -#: driver/demo-Gtk-widgets.c:309 driver/xscreensaver-demo.glade2.h:83 +#: driver/demo-Gtk-widgets.c:309 +#: driver/xscreensaver-demo.glade2.h:83 msgid "_Documentation..." -msgstr "" +msgstr "_Documentação..." #: driver/demo-Gtk-widgets.c:318 msgid "Go to the documentation on the XScreenSaver web page." -msgstr "" +msgstr "Ir para a página de documentação do XScreenSaver na web." #: driver/demo-Gtk-widgets.c:348 msgid "Cycle After" -msgstr "" +msgstr "Circular Após" -#: driver/demo-Gtk-widgets.c:370 driver/xscreensaver-demo.glade2.h:63 +#: driver/demo-Gtk-widgets.c:370 +#: driver/xscreensaver-demo.glade2.h:63 msgid "Whether a password should be required to un-blank the screen." -msgstr "" +msgstr "Se uma senha deve ser requisitada para reativar a tela." #: driver/demo-Gtk-widgets.c:372 msgid "Lock Screen After" -msgstr "" +msgstr "Bloquear Tela Após" #: driver/demo-Gtk-widgets.c:380 msgid "Blank After" -msgstr "" +msgstr "Ativar Após" -#: driver/demo-Gtk-widgets.c:403 driver/demo-Gtk-widgets.c:453 -#: driver/demo-Gtk-widgets.c:467 driver/demo-Gtk-widgets.c:1016 +#: driver/demo-Gtk-widgets.c:403 +#: driver/demo-Gtk-widgets.c:453 +#: driver/demo-Gtk-widgets.c:467 +#: driver/demo-Gtk-widgets.c:1016 msgid "How long before the monitor goes completely black." -msgstr "" - -#: driver/demo-Gtk-widgets.c:407 driver/demo-Gtk-widgets.c:419 -#: driver/demo-Gtk-widgets.c:431 driver/demo-Gtk-widgets.c:1020 -#: driver/demo-Gtk-widgets.c:1032 driver/demo-Gtk-widgets.c:1044 +msgstr "Quanto tempo antes do monitor apagar-se." + +#: driver/demo-Gtk-widgets.c:407 +#: driver/demo-Gtk-widgets.c:419 +#: driver/demo-Gtk-widgets.c:431 +#: driver/demo-Gtk-widgets.c:1020 +#: driver/demo-Gtk-widgets.c:1032 +#: driver/demo-Gtk-widgets.c:1044 #: driver/xscreensaver-demo.glade2.h:106 msgid "minutes" -msgstr "" +msgstr "minutos" -#: driver/demo-Gtk-widgets.c:482 driver/demo-Gtk.c:3233 +#: driver/demo-Gtk-widgets.c:482 +#: driver/demo-Gtk.c:3233 msgid "Preview" -msgstr "" +msgstr "Visualizar" -#: driver/demo-Gtk-widgets.c:490 driver/xscreensaver-demo.glade2.h:10 -msgid "" -"Demo the selected screen saver in full-screen mode (click the mouse to " -"return.)" -msgstr "" +#: driver/demo-Gtk-widgets.c:490 +#: driver/xscreensaver-demo.glade2.h:10 +msgid "Demo the selected screen saver in full-screen mode (click the mouse to return.)" +msgstr "Demonstrar o protetor de tela selecionado em tela cheia (clicar com o mouse para voltar)." #: driver/demo-Gtk-widgets.c:492 msgid "Settings..." -msgstr "" +msgstr "Configurações..." -#: driver/demo-Gtk-widgets.c:500 driver/xscreensaver-demo.glade2.h:7 +#: driver/demo-Gtk-widgets.c:500 +#: driver/xscreensaver-demo.glade2.h:7 msgid "Customization and explanation of the selected screen saver." -msgstr "" +msgstr "Personalização e explanação do protetor de tela selecionado." #: driver/demo-Gtk-widgets.c:521 msgid "Mode:" -msgstr "" +msgstr "Modo:" #: driver/demo-Gtk-widgets.c:539 -#, fuzzy msgid "Disable Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "Desativar Protetor de Tela" #: driver/demo-Gtk-widgets.c:542 msgid "Blank Screen Only" -msgstr "" +msgstr "Apenas Apagar Tela" #: driver/demo-Gtk-widgets.c:545 -#, fuzzy msgid "Only One Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "Apenas Um Protetor de Tela" #: driver/demo-Gtk-widgets.c:548 -#, fuzzy msgid "Random Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "Protetor de Tela Aleatório" -#: driver/demo-Gtk-widgets.c:571 driver/demo-Gtk.c:2419 +#: driver/demo-Gtk-widgets.c:571 +#: driver/demo-Gtk.c:2419 msgid "Use" -msgstr "" +msgstr "Uso" -#: driver/demo-Gtk-widgets.c:591 driver/demo-Gtk.c:2429 -#, fuzzy +#: driver/demo-Gtk-widgets.c:591 +#: driver/demo-Gtk.c:2429 msgid "Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "Protetor de Tela" #: driver/demo-Gtk-widgets.c:644 msgid "\\/" -msgstr "" +msgstr "\\/" -#: driver/demo-Gtk-widgets.c:652 driver/xscreensaver-demo.glade2.h:39 -msgid "" -"Run the next screen saver in the list in full-screen mode (click the mouse " -"to return.)" -msgstr "" +#: driver/demo-Gtk-widgets.c:652 +#: driver/xscreensaver-demo.glade2.h:39 +msgid "Run the next screen saver in the list in full-screen mode (click the mouse to return.)" +msgstr "Executar o próximo protetor de tela na lista, em tela cheia (clicar com o mouse para voltar)." #: driver/demo-Gtk-widgets.c:654 msgid "/\\" -msgstr "" +msgstr "/\\" -#: driver/demo-Gtk-widgets.c:662 driver/xscreensaver-demo.glade2.h:40 -msgid "" -"Run the previous screen saver in the list in full-screen mode (click the " -"mouse to return.)" -msgstr "" +#: driver/demo-Gtk-widgets.c:662 +#: driver/xscreensaver-demo.glade2.h:40 +msgid "Run the previous screen saver in the list in full-screen mode (click the mouse to return.)" +msgstr "Executar o protetor de tela anterior na lista, em tela cheia (clicar com o mouse para voltar)." -#: driver/demo-Gtk-widgets.c:664 driver/demo-Gtk-widgets.c:1607 +#: driver/demo-Gtk-widgets.c:664 +#: driver/demo-Gtk-widgets.c:1607 #: driver/xscreensaver-demo.glade2.h:11 msgid "Description" -msgstr "" +msgstr "Descrição" #: driver/demo-Gtk-widgets.c:691 msgid "Display Modes" -msgstr "" +msgstr "Modos de Exibição" #: driver/demo-Gtk-widgets.c:707 msgid "Diagnostics" -msgstr "" +msgstr "Diagnósticos" #: driver/demo-Gtk-widgets.c:751 msgid "Whether the daemon should print lots of debugging information." -msgstr "" +msgstr "Se o daemon deve imprimir montes de informação de depuração." #: driver/demo-Gtk-widgets.c:753 msgid "Verbose Diagnostics" -msgstr "" +msgstr "Diagnósticos Verbosos" #: driver/demo-Gtk-widgets.c:768 -msgid "" -"Whether any error output of the display modes should be redirected to the " -"screen." -msgstr "" +msgid "Whether any error output of the display modes should be redirected to the screen." +msgstr "Se qualquer saída de erro dos modos de exibição deve ser redirecionada à tela." #: driver/demo-Gtk-widgets.c:770 msgid "Display Subprocess Errors" -msgstr "" +msgstr "Exibir Erros de Subprocessos" #: driver/demo-Gtk-widgets.c:785 -msgid "" -"Whether the splash screen (with the version number and `Help' button) should " -"be momentarily displayed when the daemon first starts up." -msgstr "" +msgid "Whether the splash screen (with the version number and `Help' button) should be momentarily displayed when the daemon first starts up." +msgstr "Se a tela de abertura (com o número da versão e o botão `Ajuda') deve ser exibida momentaneamente no início do daemon." #: driver/demo-Gtk-widgets.c:787 msgid "Display Splash Screen at Startup" -msgstr "" +msgstr "Exibir Tela de Abertura ao Iniciar" #: driver/demo-Gtk-widgets.c:796 msgid "Colormaps" -msgstr "" +msgstr "Mapa de Cores" -#: driver/demo-Gtk-widgets.c:840 driver/xscreensaver-demo.glade2.h:70 -msgid "" -"Whether to install a private colormap when running in 8-bit mode on the " -"default Visual." -msgstr "" +#: driver/demo-Gtk-widgets.c:840 +#: driver/xscreensaver-demo.glade2.h:70 +msgid "Whether to install a private colormap when running in 8-bit mode on the default Visual." +msgstr "Se se deve instalar um mapa de cores privado ao executar em modo de 8-bit no Visual padrão." #: driver/demo-Gtk-widgets.c:842 msgid "Install Colormap" -msgstr "" +msgstr "Instalar Mapa de Cores" -#: driver/demo-Gtk-widgets.c:865 driver/xscreensaver-demo.glade2.h:69 -msgid "" -"Whether the screen should slowly fade to black when the screen saver " -"activates." -msgstr "" +#: driver/demo-Gtk-widgets.c:865 +#: driver/xscreensaver-demo.glade2.h:69 +msgid "Whether the screen should slowly fade to black when the screen saver activates." +msgstr "Se a tela deve apagar-se gradualmente na ativação do protetor de tela." #: driver/demo-Gtk-widgets.c:867 msgid "Fade To Black When Blanking" -msgstr "" +msgstr "Apagar Gradualmente" -#: driver/demo-Gtk-widgets.c:882 driver/xscreensaver-demo.glade2.h:68 -msgid "" -"Whether the screen should slowly fade in from black when the screen saver " -"deactivates." -msgstr "" +#: driver/demo-Gtk-widgets.c:882 +#: driver/xscreensaver-demo.glade2.h:68 +msgid "Whether the screen should slowly fade in from black when the screen saver deactivates." +msgstr "Se a tela deve ser reativada gradualmente na desativação do protetor de tela." #: driver/demo-Gtk-widgets.c:884 msgid "Fade From Black When Unblanking" -msgstr "" +msgstr "Reativar Gradualmente" #: driver/demo-Gtk-widgets.c:910 msgid "Fade Duration" -msgstr "" +msgstr "Duração" -#: driver/demo-Gtk-widgets.c:928 driver/xscreensaver-demo.glade2.h:26 +#: driver/demo-Gtk-widgets.c:928 +#: driver/xscreensaver-demo.glade2.h:26 msgid "How long it should take for the screen to fade in and out." -msgstr "" +msgstr "Quanto tempo deve levar o apagamento e a reativação graduais." -#: driver/demo-Gtk-widgets.c:932 driver/xscreensaver-demo.glade2.h:111 +#: driver/demo-Gtk-widgets.c:932 +#: driver/xscreensaver-demo.glade2.h:111 msgid "seconds" -msgstr "" +msgstr "segundos" -#: driver/demo-Gtk-widgets.c:942 driver/xscreensaver-demo.glade2.h:13 +#: driver/demo-Gtk-widgets.c:942 +#: driver/xscreensaver-demo.glade2.h:13 msgid "Display Power Management" -msgstr "" +msgstr "Gerenciamento de Energia do Monitor" -#: driver/demo-Gtk-widgets.c:986 driver/xscreensaver-demo.glade2.h:67 +#: driver/demo-Gtk-widgets.c:986 +#: driver/xscreensaver-demo.glade2.h:67 msgid "Whether the monitor should be powered down after a while." -msgstr "" +msgstr "Se o monitor deve ser desligado após algum tempo." #: driver/demo-Gtk-widgets.c:988 msgid "Power Management Enabled" -msgstr "" +msgstr "Gerenciamento de Energia Ativado" #: driver/demo-Gtk-widgets.c:1056 msgid "Off After" -msgstr "" +msgstr "Desligar Após" #: driver/demo-Gtk-widgets.c:1069 msgid "Suspend After" -msgstr "" +msgstr "Suspender Após" #: driver/demo-Gtk-widgets.c:1082 msgid "Standby After" -msgstr "" +msgstr "Standby Após" -#: driver/demo-Gtk-widgets.c:1105 driver/xscreensaver-demo.glade2.h:28 +#: driver/demo-Gtk-widgets.c:1105 +#: driver/xscreensaver-demo.glade2.h:28 msgid "How long until the monitor goes into power-saving mode." -msgstr "" +msgstr "Quanto tempo até que o monitor entre em modo de economia de energia." -#: driver/demo-Gtk-widgets.c:1119 driver/xscreensaver-demo.glade2.h:29 +#: driver/demo-Gtk-widgets.c:1119 +#: driver/xscreensaver-demo.glade2.h:29 msgid "How long until the monitor powers down." -msgstr "" +msgstr "Quanto tempo até que o monitor desligue." -#: driver/demo-Gtk-widgets.c:1123 driver/xscreensaver-demo.glade2.h:30 +#: driver/demo-Gtk-widgets.c:1123 +#: driver/xscreensaver-demo.glade2.h:30 msgid "Image Manipulation" -msgstr "" +msgstr "Manipulação de Imagem" -#: driver/demo-Gtk-widgets.c:1167 driver/xscreensaver-demo.glade2.h:64 -msgid "" -"Whether the image-manipulating modes should be allowed to operate on an " -"image of your desktop." -msgstr "" +#: driver/demo-Gtk-widgets.c:1167 +#: driver/xscreensaver-demo.glade2.h:64 +msgid "Whether the image-manipulating modes should be allowed to operate on an image of your desktop." +msgstr "Se os modos de manipulação de imagem devem ser executados sobre uma imagem na sua área de trabalho." #: driver/demo-Gtk-widgets.c:1169 msgid "Grab Desktop Images" -msgstr "" +msgstr "Capturar Imagens da Área de Trabalho" #: driver/demo-Gtk-widgets.c:1184 -msgid "" -"Whether the image-manipulating modes should operate on images captured from " -"the system's video input (if there is one)." -msgstr "" +msgid "Whether the image-manipulating modes should operate on images captured from the system's video input (if there is one)." +msgstr "Se os modos de manipulação de imagem devem ser executados sobre imagens da captura de vídeo do sistema (se houver)." #: driver/demo-Gtk-widgets.c:1186 msgid "Grab Video Frames" -msgstr "" +msgstr "Capturar Quadros de Vídeo" -#: driver/demo-Gtk-widgets.c:1201 driver/xscreensaver-demo.glade2.h:66 -msgid "" -"Whether the image-manipulating modes should operate on random images loaded " -"from disk." -msgstr "" +#: driver/demo-Gtk-widgets.c:1201 +#: driver/xscreensaver-demo.glade2.h:66 +msgid "Whether the image-manipulating modes should operate on random images loaded from disk." +msgstr "Se os modos de manipulação de imagem devem ser executados sobre imagens aleatórias carregadas do disco." #: driver/demo-Gtk-widgets.c:1203 msgid "Choose Random Image:" -msgstr "" +msgstr "Escolher Imagem Aleatória:" -#: driver/demo-Gtk-widgets.c:1236 driver/xscreensaver-demo.glade2.h:53 +#: driver/demo-Gtk-widgets.c:1236 +#: driver/xscreensaver-demo.glade2.h:53 msgid "The directory from which images will be randomly chosen." -msgstr "" +msgstr "O diretório do qual imagens serão escolhidas aleatoriamente." #: driver/demo-Gtk-widgets.c:1238 msgid "Browse" -msgstr "" +msgstr "Pesquisar" -#: driver/demo-Gtk-widgets.c:1246 driver/demo-Gtk-widgets.c:1599 +#: driver/demo-Gtk-widgets.c:1246 +#: driver/demo-Gtk-widgets.c:1599 #: driver/xscreensaver-demo.glade2.h:2 msgid "Advanced" -msgstr "" +msgstr "Avançado" #: driver/demo-Gtk-widgets.c:1444 msgid "XScreenSaver: Mode-Specific Settings" -msgstr "" +msgstr "XScreenSaver: Configurações Específicas dos Modos" -#: driver/demo-Gtk-widgets.c:1466 driver/xscreensaver-demo.glade2.h:41 +#: driver/demo-Gtk-widgets.c:1466 +#: driver/xscreensaver-demo.glade2.h:41 msgid "Settings" -msgstr "" +msgstr "Configurações" -#: driver/demo-Gtk-widgets.c:1495 driver/xscreensaver-demo.glade2.h:43 +#: driver/demo-Gtk-widgets.c:1495 +#: driver/xscreensaver-demo.glade2.h:43 msgid "Standard" -msgstr "" +msgstr "Básico" #: driver/demo-Gtk-widgets.c:1532 msgid "Visual:" -msgstr "" +msgstr "Visual:" -#: driver/demo-Gtk-widgets.c:1550 driver/demo-Gtk-widgets.c:1573 -#: driver/demo-Gtk.c:1695 driver/demo-Gtk.c:3252 +#: driver/demo-Gtk-widgets.c:1550 +#: driver/demo-Gtk-widgets.c:1573 +#: driver/demo-Gtk.c:1695 +#: driver/demo-Gtk.c:3252 #: driver/xscreensaver-demo.glade2.h:3 msgid "Any" -msgstr "" +msgstr "Qualquer" -#: driver/demo-Gtk-widgets.c:1551 driver/xscreensaver-demo.glade2.h:4 +#: driver/demo-Gtk-widgets.c:1551 +#: driver/xscreensaver-demo.glade2.h:4 msgid "Best" -msgstr "" +msgstr "Melhor" -#: driver/demo-Gtk-widgets.c:1552 driver/xscreensaver-demo.glade2.h:8 +#: driver/demo-Gtk-widgets.c:1552 +#: driver/xscreensaver-demo.glade2.h:8 msgid "Default" -msgstr "" +msgstr "Padrão" -#: driver/demo-Gtk-widgets.c:1553 driver/xscreensaver-demo.glade2.h:9 +#: driver/demo-Gtk-widgets.c:1553 +#: driver/xscreensaver-demo.glade2.h:9 msgid "Default-N" -msgstr "" +msgstr "Padrão-N" -#: driver/demo-Gtk-widgets.c:1554 driver/xscreensaver-demo.glade2.h:18 +#: driver/demo-Gtk-widgets.c:1554 +#: driver/xscreensaver-demo.glade2.h:18 msgid "GL" -msgstr "" +msgstr "GL" -#: driver/demo-Gtk-widgets.c:1555 driver/xscreensaver-demo.glade2.h:54 +#: driver/demo-Gtk-widgets.c:1555 +#: driver/xscreensaver-demo.glade2.h:54 msgid "TrueColor" -msgstr "" +msgstr "TrueColor" -#: driver/demo-Gtk-widgets.c:1556 driver/xscreensaver-demo.glade2.h:38 +#: driver/demo-Gtk-widgets.c:1556 +#: driver/xscreensaver-demo.glade2.h:38 msgid "PseudoColor" -msgstr "" +msgstr "PseudoColor" -#: driver/demo-Gtk-widgets.c:1557 driver/xscreensaver-demo.glade2.h:44 +#: driver/demo-Gtk-widgets.c:1557 +#: driver/xscreensaver-demo.glade2.h:44 msgid "StaticGray" -msgstr "" +msgstr "StaticGray" -#: driver/demo-Gtk-widgets.c:1558 driver/xscreensaver-demo.glade2.h:22 +#: driver/demo-Gtk-widgets.c:1558 +#: driver/xscreensaver-demo.glade2.h:22 msgid "GrayScale" -msgstr "" +msgstr "GrayScale" -#: driver/demo-Gtk-widgets.c:1559 driver/xscreensaver-demo.glade2.h:12 +#: driver/demo-Gtk-widgets.c:1559 +#: driver/xscreensaver-demo.glade2.h:12 msgid "DirectColor" -msgstr "" +msgstr "DirectColor" -#: driver/demo-Gtk-widgets.c:1560 driver/xscreensaver-demo.glade2.h:6 +#: driver/demo-Gtk-widgets.c:1560 +#: driver/xscreensaver-demo.glade2.h:6 #: hacks/config/fuzzyflakes.xml.h:3 msgid "Color" -msgstr "" +msgstr "Cor" -#: driver/demo-Gtk-widgets.c:1561 driver/xscreensaver-demo.glade2.h:21 +#: driver/demo-Gtk-widgets.c:1561 +#: driver/xscreensaver-demo.glade2.h:21 msgid "Gray" -msgstr "" +msgstr "Cinza" -#: driver/demo-Gtk-widgets.c:1562 driver/xscreensaver-demo.glade2.h:32 +#: driver/demo-Gtk-widgets.c:1562 +#: driver/xscreensaver-demo.glade2.h:32 msgid "Mono" -msgstr "" +msgstr "Mono" #: driver/demo-Gtk-widgets.c:1572 -msgid "" -"The X visual type that this demo will require. If that visual is available " -"it will be used, otherwise, this demo will not be run." -msgstr "" +msgid "The X visual type that this demo will require. If that visual is available it will be used, otherwise, this demo will not be run." +msgstr "O tipo visual do X que esta demonstração requererá. Se o visual estiver disponível ele será usado, de outro modo esta demonstração não será executada." #: driver/demo-Gtk-widgets.c:1575 msgid "Command Line:" -msgstr "" +msgstr "Linha de Comando:" #: driver/demo-Gtk-widgets.c:1647 msgid "Documentation..." -msgstr "" +msgstr "Documentação..." #: driver/demo-Gtk-widgets.c:1655 msgid "Click here to read the manual for this display mode, if it has one." -msgstr "" +msgstr "Clique aqui para ler o manual para este modo de exibição, se houver." #: driver/demo-Gtk-widgets.c:1680 msgid "Advanced >>" -msgstr "" +msgstr "Avançado >>" #: driver/demo-Gtk-widgets.c:1688 msgid "Edit the command line directly." -msgstr "" +msgstr "Editar a linha de comando diretamente." #: driver/demo-Gtk-widgets.c:1690 msgid "Standard <<" -msgstr "" +msgstr "Básico <<" #: driver/demo-Gtk-widgets.c:1698 msgid "Back to the graphical configuration options." -msgstr "" +msgstr "Voltar às opções gráficas de configuração." -#: driver/demo-Gtk-widgets.c:1709 driver/demo-Gtk.c:832 +#: driver/demo-Gtk-widgets.c:1709 +#: driver/demo-Gtk.c:832 msgid "OK" -msgstr "" +msgstr "OK" #: driver/demo-Gtk-widgets.c:1718 msgid "Cancel" -msgstr "" +msgstr "Cancelar" -#: driver/demo-Gtk.c:692 driver/demo-Gtk.c:4282 +#: driver/demo-Gtk.c:692 +#: driver/demo-Gtk.c:4282 #, c-format msgid "" "Warning:\n" @@ -495,10 +518,14 @@ msgid "" "The XScreenSaver daemon doesn't seem to be running\n" "on display \"%s\". Launch it now?" msgstr "" +"Atenção:\n" +"\n" +"Parece que o daemon do xscreensaver não está sendo executado\n" +"no monitor \"%s\". Lançá-lo agora?" #: driver/demo-Gtk.c:740 msgid "For updates, check http://www.jwz.org/xscreensaver/" -msgstr "" +msgstr "Para atualizações, examine http://www.jwz.org/xscreensaver/" #: driver/demo-Gtk.c:870 msgid "" @@ -506,6 +533,9 @@ msgid "" "\n" "No Help URL has been specified.\n" msgstr "" +"Erro:\n" +"\n" +"Nenhuma URL de Ajuda foi especificada.\n" #: driver/demo-Gtk.c:967 msgid "" @@ -514,6 +544,10 @@ msgid "" "The xscreensaver daemon did not start up properly.\n" "\n" msgstr "" +"Erro:\n" +"\n" +"O daemon do xscreensaver não iniciou adequadamente.\n" +"\n" #: driver/demo-Gtk.c:979 msgid "" @@ -533,10 +567,25 @@ msgid "" "You shouldn't run X as root. Instead, you should log in as a\n" "normal user, and `su' as necessary." msgstr "" +"O programa está sendo executado pelo root. Isso geralmente significa\n" +"que o xscreensaver foi incapaz de contatar o seu servidor X porque o\n" +"controle de acesso está ligado. Tente executar esse comando:\n" +"\n" +" xhost +localhost\n" +"\n" +"e então selecionar `Arquivo / Reiniciar Daemon'.\n" +"\n" +"Note que desligar o controle de acesso permitirá que qualquer um\n" +"que esteja logado nessa máquina acesse a sua tela, o que pode ser\n" +"considerado um problema de segurança. Por favor, leia o manual do\n" +"xscreensaver e as perguntas frequentes (FAQ) para mais informações.\n" +"\n" +"Você não deveria executar o X como root. Em vez disso, você deveria\n" +"autenticar-se como um usuário normal e `su' quando necessário." #: driver/demo-Gtk.c:995 msgid "Please check your $PATH and permissions." -msgstr "" +msgstr "Por favor, verifique o seu $PATH e as permissões." #: driver/demo-Gtk.c:1033 msgid "" @@ -544,6 +593,9 @@ msgid "" "\n" "Couldn't determine init file name!\n" msgstr "" +"Erro:\n" +"\n" +"Incapaz de determinar o nome do arquivo init!\n" #: driver/demo-Gtk.c:1038 #, c-format @@ -552,6 +604,9 @@ msgid "" "\n" "Couldn't write %s\n" msgstr "" +"Erro:\n" +"\n" +"Incapaz de escrever %s\n" #: driver/demo-Gtk.c:1101 msgid "" @@ -559,6 +614,9 @@ msgid "" "\n" "no `manualCommand' resource set." msgstr "" +"Erro:\n" +"\n" +"Nenhum recurso `manualCommand' definido." #: driver/demo-Gtk.c:1284 #, c-format @@ -567,6 +625,9 @@ msgid "" "\n" "Unparsable time format: \"%s\"\n" msgstr "" +"Erro:\n" +"\n" +"Formato de tempo não analisável: \"%s\"\n" #: driver/demo-Gtk.c:1991 #, c-format @@ -575,36 +636,42 @@ msgid "" "\n" "Directory does not exist: \"%s\"\n" msgstr "" +"Erro:\n" +"\n" +"O diretório não existe: \"%s\"\n" -#: driver/demo-Gtk.c:2021 driver/demo-Gtk.c:2052 +#: driver/demo-Gtk.c:2021 +#: driver/demo-Gtk.c:2052 #, c-format msgid "" "Error:\n" "\n" "File does not exist: \"%s\"\n" msgstr "" +"Erro:\n" +"\n" +"O arquivo não existe: \"%s\"\n" #: driver/demo-Gtk.c:2877 msgid "Descriptions not available: no XML support compiled in." -msgstr "" +msgstr "Descrições não disponíveis: suporte ao XML não foi compilado." #: driver/demo-Gtk.c:2882 msgid "No description available." -msgstr "" +msgstr "Nenhuma descrição disponível." #: driver/demo-Gtk.c:3204 msgid "Blank Screen" -msgstr "" +msgstr "Apagar Tela" #: driver/demo-Gtk.c:3210 -#, fuzzy msgid "Screen Saver Disabled" -msgstr "Propriedades da proteo de tela" +msgstr "Protetor de Tela Desativado" #: driver/demo-Gtk.c:3243 -#, c-format +#, fuzzy, c-format msgid "%s: %.100s Settings" -msgstr "" +msgstr "%s: Intervalos de %.100s" #: driver/demo-Gtk.c:3407 #, c-format @@ -613,22 +680,25 @@ msgid "" "\n" "file \"%s\" has changed, reloading.\n" msgstr "" +"Atenção:\n" +"\n" +"O arquivo \"%s\" foi modificado, recarregando.\n" #: driver/demo-Gtk.c:3492 msgid "No Preview" -msgstr "" +msgstr "Nenhuma Visualização" #: driver/demo-Gtk.c:3492 msgid "Available" -msgstr "" +msgstr "Disponível" #: driver/demo-Gtk.c:3493 msgid "Not" -msgstr "" +msgstr "Não" #: driver/demo-Gtk.c:3493 msgid "Installed" -msgstr "" +msgstr "Instalado" #: driver/demo-Gtk.c:4292 #, c-format @@ -648,6 +718,20 @@ msgid "" "\n" "Restart the xscreensaver daemon now?\n" msgstr "" +"Atenção:\n" +"\n" +"O %s está sendo executado pelo usuário \"%s\" no host \"%s\".\n" +"No entanto o display de gerenciamento \"%s\" do xscreensaver\n" +"está sendo executado pelo usuário \"%s\" no host \"%s\".\n" +"\n" +"Como são usuários diferentes, eles não lêem/escrevem\n" +"o mesmo arquivo ~/.xscreensaver, portanto o %s não\n" +"funcionará corretamente.\n" +"\n" +"Você deveria ou re-executar o %s como \"%s\", ou\n" +"re-executar o xscreensaver como \"%s\".\n" +"\n" +"Reiniciar o daemon do xscreensaver agora?\n" #: driver/demo-Gtk.c:4317 #, c-format @@ -664,6 +748,17 @@ msgid "" "\n" "Restart the daemon on \"%s\" as \"%s\" now?\n" msgstr "" +"Atenção:\n" +"\n" +"O %s está sendo executado pelo usuário \"%s\" no host \"%s\".\n" +"No entanto o display de gerenciamento \"%s\" do xscreensaver\n" +"está sendo executado pelo usuário \"%s\" no host \"%s\".\n" +"\n" +"Se essas duas máquinas não compartilham um sistema de arquivos\n" +"(ou seja, se elas não enxergam o mesmo arquivo ~%s/.xscreensaver)\n" +"então o %s não funcionará corretamente.\n" +"\n" +"Reiniciar o daemon em \"%s\" como \"%s\" agora?\n" #: driver/demo-Gtk.c:4339 #, c-format @@ -676,132 +771,138 @@ msgid "" "\n" "Restart the xscreensaver daemon now?\n" msgstr "" +"Atenção:\n" +"\n" +"Este é o %s versão %s.\n" +"No entanto o display de gerenciamento \"%s\" do xscreensaver\n" +"é versão %s. Isso poderia causar problemas.\n" +"\n" +"Reiniciar o daemon do xscreensaver agora?\n" #: driver/demo-Gtk.c:4800 #, c-format msgid "%s: unknown option: %s\n" -msgstr "" +msgstr "%s: opção desconhecida: %s\n" #: driver/demo-Gtk.c:4865 -#, fuzzy msgid "Screensaver Preferences" -msgstr "Propriedades da proteo de tela" +msgstr "Preferências do Protetor de Tela" #: driver/screensaver-properties.desktop.in.h:1 msgid "Change screensaver properties" -msgstr "" +msgstr "Modificar as propriedades do protetor de tela" #: driver/screensaver-properties.desktop.in.h:2 -#, fuzzy msgid "Screensaver" -msgstr "Propriedades da proteo de tela" +msgstr "Protetor de Tela" #: driver/xscreensaver-demo.glade2.h:1 msgid "*" -msgstr "" +msgstr "*" #: driver/xscreensaver-demo.glade2.h:5 msgid "Choose _Random Image:" -msgstr "" +msgstr "Escolher Imagem _Aleatória:" #: driver/xscreensaver-demo.glade2.h:14 msgid "F_ade Duration" -msgstr "" +msgstr "Dura_ção" #: driver/xscreensaver-demo.glade2.h:15 msgid "Fade from Black When _Unblanking" -msgstr "" +msgstr "_Reativar Gradualmente" #: driver/xscreensaver-demo.glade2.h:16 msgid "Fade to Black when _Blanking" -msgstr "" +msgstr "Apagar _Gradualmente" #: driver/xscreensaver-demo.glade2.h:17 msgid "Fading and Colormaps" -msgstr "" +msgstr "Esvaecimento e Mapa de Cores" #: driver/xscreensaver-demo.glade2.h:19 msgid "Grab Desktop _Images" -msgstr "" +msgstr "Capturar _Imagens da Área de Trabalho" #: driver/xscreensaver-demo.glade2.h:20 msgid "Grab _Video Frames" -msgstr "" +msgstr "Capturar Quadros de _Vídeo" #: driver/xscreensaver-demo.glade2.h:23 msgid "How long after the screen blanks until a password will be required." -msgstr "" +msgstr "Passar a exigir senha após quanto tempo do apagamento da tela." #: driver/xscreensaver-demo.glade2.h:24 msgid "How long before the screen saver activates." -msgstr "" +msgstr "Quanto tempo antes de ativar o protetor de tela." #: driver/xscreensaver-demo.glade2.h:25 -msgid "" -"How long each display mode should run before choosing a new one (in Random " -"mode.)" -msgstr "" +msgid "How long each display mode should run before choosing a new one (in Random mode.)" +msgstr "Por quanto tempo executar cada modo de exibição antes de escolher um novo (no modo Aleatório)." #: driver/xscreensaver-demo.glade2.h:27 msgid "How long until the monitor goes completely black." -msgstr "" +msgstr "Quanto tempo até que a tela se apague." #: driver/xscreensaver-demo.glade2.h:31 msgid "Install _Colormap" -msgstr "" +msgstr "Instalar Mapa de _Cores" #: driver/xscreensaver-demo.glade2.h:33 msgid "Never blank the screen or power down the monitor." -msgstr "" +msgstr "Nunca apagar a tela ou desligar o monitor." #: driver/xscreensaver-demo.glade2.h:34 msgid "" "No Preview\n" "Available" msgstr "" +"Nenhuma Visualização\n" +"Disponível" #: driver/xscreensaver-demo.glade2.h:36 msgid "" "Not\n" "Installed" msgstr "" +"Não\n" +"Instalado" #: driver/xscreensaver-demo.glade2.h:42 msgid "Stand_by After" -msgstr "" +msgstr "Stand_by Após" #: driver/xscreensaver-demo.glade2.h:45 msgid "Sus_pend After" -msgstr "" +msgstr "Suspe_nder Após" #: driver/xscreensaver-demo.glade2.h:46 msgid "Text Manipulation" -msgstr "" +msgstr "Manipulação de Texto" #: driver/xscreensaver-demo.glade2.h:47 msgid "Text _file" -msgstr "" +msgstr "Arquivo de Te_xto" #: driver/xscreensaver-demo.glade2.h:48 -msgid "" -"Text-displaying modes will display the contents of this URL (HTML or RSS)." -msgstr "" +msgid "Text-displaying modes will display the contents of this URL (HTML or RSS)." +msgstr "Os modos de exibição de texto exibirão o conteúdo dessa URL (HTML ou RSS)." #: driver/xscreensaver-demo.glade2.h:49 msgid "Text-displaying modes will display the contents of this file." -msgstr "" +msgstr "Os modos de exibição de texto exibirão o conteúdo desse arquivo." #: driver/xscreensaver-demo.glade2.h:50 msgid "Text-displaying modes will display the local host name, date, and time." -msgstr "" +msgstr "Os modos de exibição de texto exibirão o nome do host local, a data e a hora." #: driver/xscreensaver-demo.glade2.h:51 msgid "Text-displaying modes will display the output of this program." -msgstr "" +msgstr "Os modos de exibição de texto exibirão a saída desse programa." #: driver/xscreensaver-demo.glade2.h:52 msgid "Text-displaying modes will display the text typed here." -msgstr "" +msgstr "Os modos de exibição de texto exibirão o texto digitado aqui." #: driver/xscreensaver-demo.glade2.h:55 msgid "" @@ -810,1007 +911,1460 @@ msgid "" "This probably means that the \"xscreensaver-extras\" and\n" "\"xscreensaver-gl-extras\" packages are not installed." msgstr "" +"Parece que poucos (ou nenhum) protetores de tela estão disponíveis.\n" +"\n" +"Isso provavelmente significa que os pacotes \"xscreensaver-data-extra\",\n" +"\"xscreensaver-gl\" e \"xscreensaver-gl-extra\" não estão instalados." #: driver/xscreensaver-demo.glade2.h:59 msgid "When idle or locked, blacken the screen only." -msgstr "" +msgstr "Quando inativa ou bloqueada, apenas apagar a tela." #: driver/xscreensaver-demo.glade2.h:60 -msgid "" -"When idle or locked, choose a random display mode from among the checked " -"items in the list below." -msgstr "" +msgid "When idle or locked, choose a random display mode from among the checked items in the list below." +msgstr "Quando inativa ou bloqueada, escolher um modo aleatório entre os marcados na lista abaixo." #: driver/xscreensaver-demo.glade2.h:61 -msgid "" -"When idle or locked, choose a random display mode from among the checked " -"items in the list below. Run that same mode on each monitor." -msgstr "" +msgid "When idle or locked, choose a random display mode from among the checked items in the list below. Run that same mode on each monitor." +msgstr "Quando inativa ou bloqueada, escolher um modo aleatório entre os marcados na lista abaixo. Executar o mesmo modo em todos os monitores." #: driver/xscreensaver-demo.glade2.h:62 msgid "When idle or locked, run the display mode selected below." -msgstr "" +msgstr "Quando inativa ou bloqueada, executar o modo de exibição selecionado abaixo." #: driver/xscreensaver-demo.glade2.h:65 -msgid "" -"Whether the image-manipulating modes should operate on images captured from " -"the system's video input (if there is one.)" -msgstr "" +msgid "Whether the image-manipulating modes should operate on images captured from the system's video input (if there is one.)" +msgstr "Se os modos de manipulação de imagem devem ser executados sobre imagens da captura de vídeo do sistema (se houver)." #: driver/xscreensaver-demo.glade2.h:73 msgid "_Advanced" -msgstr "" +msgstr "Avança_do" #: driver/xscreensaver-demo.glade2.h:74 msgid "_Advanced >>" -msgstr "" +msgstr "_Avançado >>" #: driver/xscreensaver-demo.glade2.h:75 msgid "_Blank After" -msgstr "" +msgstr "_Ativar Após" #: driver/xscreensaver-demo.glade2.h:77 msgid "_Blank Screen Only" -msgstr "" +msgstr "Apenas Apa_gar a Tela" #: driver/xscreensaver-demo.glade2.h:78 msgid "_Browse" -msgstr "" +msgstr "_Pesquisar" #: driver/xscreensaver-demo.glade2.h:79 msgid "_Command Line:" -msgstr "" +msgstr "Linha de _Comando:" #: driver/xscreensaver-demo.glade2.h:80 msgid "_Cycle After" -msgstr "" +msgstr "_Circular Após" #: driver/xscreensaver-demo.glade2.h:81 -#, fuzzy msgid "_Disable Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "_Desativar Protetor de Tela" #: driver/xscreensaver-demo.glade2.h:82 msgid "_Display Modes" -msgstr "" +msgstr "Modos de Exibiçã_o" #: driver/xscreensaver-demo.glade2.h:86 msgid "_Host Name and Time" -msgstr "" +msgstr "Nome do _Host e Hora" #: driver/xscreensaver-demo.glade2.h:88 -#, fuzzy msgid "_Lock Screen After " -msgstr "Propriedades da proteo de tela" +msgstr "_Bloquear Tela Após" #: driver/xscreensaver-demo.glade2.h:90 msgid "_Mode:" -msgstr "" +msgstr "_Modo:" #: driver/xscreensaver-demo.glade2.h:91 msgid "_Off After" -msgstr "" +msgstr "De_sligar Após" #: driver/xscreensaver-demo.glade2.h:92 -#, fuzzy msgid "_Only One Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "Apenas _Um Protetor de Tela" #: driver/xscreensaver-demo.glade2.h:93 msgid "_Power Management Enabled" -msgstr "" +msgstr "Gerenciamento de _Energia Ativado" #: driver/xscreensaver-demo.glade2.h:94 msgid "_Preview" -msgstr "" +msgstr "_Visualizar" #: driver/xscreensaver-demo.glade2.h:95 msgid "_Program" -msgstr "" +msgstr "Progra_ma" #: driver/xscreensaver-demo.glade2.h:96 msgid "_Quit" -msgstr "" +msgstr "_Sair" #: driver/xscreensaver-demo.glade2.h:97 -#, fuzzy msgid "_Random Screen Saver" -msgstr "Propriedades da proteo de tela" +msgstr "Protetor de Tela _Aleatório" #: driver/xscreensaver-demo.glade2.h:99 -#, fuzzy msgid "_Same Random Savers" -msgstr "Propriedades da proteo de tela" +msgstr "Os _Mesmos Protetores Aleatórios" #: driver/xscreensaver-demo.glade2.h:100 msgid "_Settings..." -msgstr "" +msgstr "_Configurações..." #: driver/xscreensaver-demo.glade2.h:101 msgid "_Standard <<" -msgstr "" +msgstr "_Básico <<" #: driver/xscreensaver-demo.glade2.h:102 msgid "_Text" -msgstr "" +msgstr "_Texto" #: driver/xscreensaver-demo.glade2.h:103 msgid "_URL" -msgstr "" +msgstr "UR_L" #: driver/xscreensaver-demo.glade2.h:104 msgid "_Visual:" -msgstr "" +msgstr "_Visual:" #: driver/xscreensaver-demo.glade2.h:105 msgid "dialog1" -msgstr "" +msgstr "diálogo1" #: driver/xscreensaver-demo.glade2.h:107 msgid "no preview" -msgstr "" +msgstr "sem visualização" #: driver/xscreensaver-demo.glade2.h:108 msgid "not installed" -msgstr "" +msgstr "não instalado" #: driver/xscreensaver-demo.glade2.h:109 msgid "nothing" -msgstr "" +msgstr "nada" #: driver/xscreensaver-demo.glade2.h:110 msgid "preview" -msgstr "" +msgstr "visualizar" #: hacks/config/anemone.xml.h:1 msgid "Anemone" -msgstr "" +msgstr "Anêmona" -#: hacks/config/anemone.xml.h:2 hacks/config/fuzzyflakes.xml.h:1 +#: hacks/config/anemone.xml.h:2 +#: hacks/config/fuzzyflakes.xml.h:1 msgid "Arms" -msgstr "" - -#: hacks/config/anemone.xml.h:3 hacks/config/anemotaxis.xml.h:5 -#: hacks/config/ant.xml.h:6 hacks/config/antinspect.xml.h:4 -#: hacks/config/antmaze.xml.h:3 hacks/config/antspotlight.xml.h:3 -#: hacks/config/apollonian.xml.h:5 hacks/config/atlantis.xml.h:4 -#: hacks/config/attraction.xml.h:8 hacks/config/atunnel.xml.h:3 -#: hacks/config/barcode.xml.h:4 hacks/config/blaster.xml.h:3 -#: hacks/config/blinkbox.xml.h:5 hacks/config/blitspin.xml.h:4 -#: hacks/config/blocktube.xml.h:4 hacks/config/boing.xml.h:2 -#: hacks/config/bouboule.xml.h:3 hacks/config/bouncingcow.xml.h:6 -#: hacks/config/boxed.xml.h:6 hacks/config/boxfit.xml.h:8 -#: hacks/config/braid.xml.h:4 hacks/config/bubble3d.xml.h:4 -#: hacks/config/bubbles.xml.h:8 hacks/config/bumps.xml.h:3 -#: hacks/config/cage.xml.h:2 hacks/config/carousel.xml.h:5 -#: hacks/config/ccurve.xml.h:7 hacks/config/celtic.xml.h:3 -#: hacks/config/circuit.xml.h:4 hacks/config/cloudlife.xml.h:3 -#: hacks/config/compass.xml.h:3 hacks/config/coral.xml.h:7 -#: hacks/config/critical.xml.h:3 hacks/config/crystal.xml.h:6 -#: hacks/config/cube21.xml.h:6 hacks/config/cubenetic.xml.h:8 -#: hacks/config/cubestorm.xml.h:4 hacks/config/cynosure.xml.h:4 -#: hacks/config/dangerball.xml.h:3 hacks/config/decayscreen.xml.h:2 -#: hacks/config/deluxe.xml.h:4 hacks/config/demon.xml.h:4 -#: hacks/config/discrete.xml.h:2 hacks/config/distort.xml.h:4 -#: hacks/config/drift.xml.h:3 hacks/config/endgame.xml.h:3 -#: hacks/config/engine.xml.h:8 hacks/config/epicycle.xml.h:5 -#: hacks/config/eruption.xml.h:5 hacks/config/euler2d.xml.h:3 -#: hacks/config/extrusion.xml.h:3 hacks/config/fadeplot.xml.h:4 -#: hacks/config/fireworkx.xml.h:3 hacks/config/flag.xml.h:2 -#: hacks/config/flame.xml.h:6 hacks/config/flipflop.xml.h:1 -#: hacks/config/flipscreen3d.xml.h:1 hacks/config/fliptext.xml.h:3 -#: hacks/config/flow.xml.h:2 hacks/config/fluidballs.xml.h:5 -#: hacks/config/flyingtoasters.xml.h:5 hacks/config/fontglide.xml.h:4 -#: hacks/config/forest.xml.h:1 hacks/config/fuzzyflakes.xml.h:7 -#: hacks/config/galaxy.xml.h:3 hacks/config/gears.xml.h:2 -#: hacks/config/gflux.xml.h:6 hacks/config/glblur.xml.h:4 -#: hacks/config/glforestfire.xml.h:4 hacks/config/glhanoi.xml.h:3 -#: hacks/config/glknots.xml.h:3 hacks/config/glmatrix.xml.h:8 -#: hacks/config/glplanet.xml.h:2 hacks/config/glsnake.xml.h:6 -#: hacks/config/gltext.xml.h:4 hacks/config/goop.xml.h:4 -#: hacks/config/grav.xml.h:2 hacks/config/greynetic.xml.h:1 -#: hacks/config/halo.xml.h:2 hacks/config/hopalong.xml.h:9 -#: hacks/config/hyperball.xml.h:2 hacks/config/hypercube.xml.h:2 -#: hacks/config/hypertorus.xml.h:6 hacks/config/ifs.xml.h:4 -#: hacks/config/interaggregate.xml.h:1 hacks/config/interference.xml.h:7 -#: hacks/config/intermomentary.xml.h:1 hacks/config/jigglypuff.xml.h:6 -#: hacks/config/jigsaw.xml.h:3 hacks/config/juggle.xml.h:2 -#: hacks/config/juggler3d.xml.h:2 hacks/config/julia.xml.h:2 -#: hacks/config/kaleidescope.xml.h:2 hacks/config/klein.xml.h:2 -#: hacks/config/kumppa.xml.h:3 hacks/config/lament.xml.h:2 -#: hacks/config/laser.xml.h:3 hacks/config/lavalite.xml.h:10 -#: hacks/config/lightning.xml.h:1 hacks/config/lisa.xml.h:2 -#: hacks/config/lissie.xml.h:3 hacks/config/lmorph.xml.h:3 -#: hacks/config/loop.xml.h:1 hacks/config/maze.xml.h:4 -#: hacks/config/memscroller.xml.h:5 hacks/config/menger.xml.h:3 -#: hacks/config/metaballs.xml.h:4 hacks/config/mirrorblob.xml.h:11 -#: hacks/config/mismunch.xml.h:2 hacks/config/moebius.xml.h:3 -#: hacks/config/moire2.xml.h:2 hacks/config/molecule.xml.h:11 -#: hacks/config/morph3d.xml.h:3 hacks/config/mountain.xml.h:2 -#: hacks/config/munch.xml.h:3 hacks/config/nerverot.xml.h:9 -#: hacks/config/noof.xml.h:2 hacks/config/pacman.xml.h:1 -#: hacks/config/penetrate.xml.h:3 hacks/config/penrose.xml.h:3 -#: hacks/config/petri.xml.h:5 hacks/config/phosphor.xml.h:4 -#: hacks/config/piecewise.xml.h:4 hacks/config/pinion.xml.h:5 -#: hacks/config/pipes.xml.h:5 hacks/config/polyhedra.xml.h:17 -#: hacks/config/polyominoes.xml.h:2 hacks/config/polytopes.xml.h:11 -#: hacks/config/pong.xml.h:1 hacks/config/popsquares.xml.h:3 -#: hacks/config/providence.xml.h:2 hacks/config/pulsar.xml.h:11 -#: hacks/config/pyro.xml.h:4 hacks/config/qix.xml.h:7 -#: hacks/config/queens.xml.h:1 hacks/config/rd-bomb.xml.h:9 -#: hacks/config/ripples.xml.h:4 hacks/config/rocks.xml.h:4 -#: hacks/config/rotor.xml.h:3 hacks/config/rubik.xml.h:3 -#: hacks/config/sballs.xml.h:4 hacks/config/shadebobs.xml.h:3 -#: hacks/config/sierpinski.xml.h:2 hacks/config/sierpinski3d.xml.h:2 -#: hacks/config/slidescreen.xml.h:2 hacks/config/slip.xml.h:2 -#: hacks/config/speedmine.xml.h:3 hacks/config/sphere.xml.h:2 -#: hacks/config/spheremonics.xml.h:5 hacks/config/spiral.xml.h:3 -#: hacks/config/spotlight.xml.h:2 hacks/config/sproingies.xml.h:2 -#: hacks/config/squiral.xml.h:4 hacks/config/stairs.xml.h:1 -#: hacks/config/starfish.xml.h:3 hacks/config/starwars.xml.h:6 -#: hacks/config/strange.xml.h:1 hacks/config/substrate.xml.h:7 -#: hacks/config/superquadrics.xml.h:4 hacks/config/swirl.xml.h:2 -#: hacks/config/t3d.xml.h:6 hacks/config/tangram.xml.h:2 -#: hacks/config/thornbird.xml.h:2 hacks/config/triangle.xml.h:1 -#: hacks/config/truchet.xml.h:1 hacks/config/twang.xml.h:3 -#: hacks/config/vines.xml.h:1 hacks/config/worm.xml.h:3 -#: hacks/config/wormhole.xml.h:2 hacks/config/xearth.xml.h:7 -#: hacks/config/xfishtank.xml.h:3 hacks/config/xflame.xml.h:4 -#: hacks/config/xjack.xml.h:1 hacks/config/xmatrix.xml.h:5 -#: hacks/config/xmountains.xml.h:13 hacks/config/xplanet.xml.h:8 -#: hacks/config/xrayswarm.xml.h:2 hacks/config/zoom.xml.h:2 +msgstr "Braços" + +#: hacks/config/anemone.xml.h:3 +#: hacks/config/anemotaxis.xml.h:5 +#: hacks/config/ant.xml.h:6 +#: hacks/config/antinspect.xml.h:4 +#: hacks/config/antmaze.xml.h:3 +#: hacks/config/antspotlight.xml.h:3 +#: hacks/config/apollonian.xml.h:5 +#: hacks/config/atlantis.xml.h:4 +#: hacks/config/attraction.xml.h:8 +#: hacks/config/atunnel.xml.h:3 +#: hacks/config/barcode.xml.h:4 +#: hacks/config/blaster.xml.h:3 +#: hacks/config/blinkbox.xml.h:5 +#: hacks/config/blitspin.xml.h:4 +#: hacks/config/blocktube.xml.h:4 +#: hacks/config/boing.xml.h:2 +#: hacks/config/bouboule.xml.h:3 +#: hacks/config/bouncingcow.xml.h:6 +#: hacks/config/boxed.xml.h:6 +#: hacks/config/boxfit.xml.h:8 +#: hacks/config/braid.xml.h:4 +#: hacks/config/bubble3d.xml.h:4 +#: hacks/config/bubbles.xml.h:8 +#: hacks/config/bumps.xml.h:3 +#: hacks/config/cage.xml.h:2 +#: hacks/config/carousel.xml.h:5 +#: hacks/config/ccurve.xml.h:7 +#: hacks/config/celtic.xml.h:3 +#: hacks/config/circuit.xml.h:4 +#: hacks/config/cloudlife.xml.h:3 +#: hacks/config/compass.xml.h:3 +#: hacks/config/coral.xml.h:7 +#: hacks/config/critical.xml.h:3 +#: hacks/config/crystal.xml.h:6 +#: hacks/config/cube21.xml.h:6 +#: hacks/config/cubenetic.xml.h:8 +#: hacks/config/cubestorm.xml.h:4 +#: hacks/config/cynosure.xml.h:4 +#: hacks/config/dangerball.xml.h:3 +#: hacks/config/decayscreen.xml.h:2 +#: hacks/config/deluxe.xml.h:4 +#: hacks/config/demon.xml.h:4 +#: hacks/config/discrete.xml.h:2 +#: hacks/config/distort.xml.h:4 +#: hacks/config/drift.xml.h:3 +#: hacks/config/endgame.xml.h:3 +#: hacks/config/engine.xml.h:8 +#: hacks/config/epicycle.xml.h:5 +#: hacks/config/eruption.xml.h:5 +#: hacks/config/euler2d.xml.h:3 +#: hacks/config/extrusion.xml.h:3 +#: hacks/config/fadeplot.xml.h:4 +#: hacks/config/fireworkx.xml.h:3 +#: hacks/config/flag.xml.h:2 +#: hacks/config/flame.xml.h:6 +#: hacks/config/flipflop.xml.h:1 +#: hacks/config/flipscreen3d.xml.h:1 +#: hacks/config/fliptext.xml.h:3 +#: hacks/config/flow.xml.h:2 +#: hacks/config/fluidballs.xml.h:5 +#: hacks/config/flyingtoasters.xml.h:5 +#: hacks/config/fontglide.xml.h:4 +#: hacks/config/forest.xml.h:1 +#: hacks/config/fuzzyflakes.xml.h:7 +#: hacks/config/galaxy.xml.h:3 +#: hacks/config/gears.xml.h:2 +#: hacks/config/gflux.xml.h:6 +#: hacks/config/glblur.xml.h:4 +#: hacks/config/glforestfire.xml.h:4 +#: hacks/config/glhanoi.xml.h:3 +#: hacks/config/glknots.xml.h:3 +#: hacks/config/glmatrix.xml.h:8 +#: hacks/config/glplanet.xml.h:2 +#: hacks/config/glsnake.xml.h:6 +#: hacks/config/gltext.xml.h:4 +#: hacks/config/goop.xml.h:4 +#: hacks/config/grav.xml.h:2 +#: hacks/config/greynetic.xml.h:1 +#: hacks/config/halo.xml.h:2 +#: hacks/config/hopalong.xml.h:9 +#: hacks/config/hyperball.xml.h:2 +#: hacks/config/hypercube.xml.h:2 +#: hacks/config/hypertorus.xml.h:6 +#: hacks/config/ifs.xml.h:4 +#: hacks/config/interaggregate.xml.h:1 +#: hacks/config/interference.xml.h:7 +#: hacks/config/intermomentary.xml.h:1 +#: hacks/config/jigglypuff.xml.h:6 +#: hacks/config/jigsaw.xml.h:3 +#: hacks/config/juggle.xml.h:2 +#: hacks/config/juggler3d.xml.h:2 +#: hacks/config/julia.xml.h:2 +#: hacks/config/kaleidescope.xml.h:2 +#: hacks/config/klein.xml.h:2 +#: hacks/config/kumppa.xml.h:3 +#: hacks/config/lament.xml.h:2 +#: hacks/config/laser.xml.h:3 +#: hacks/config/lavalite.xml.h:10 +#: hacks/config/lightning.xml.h:1 +#: hacks/config/lisa.xml.h:2 +#: hacks/config/lissie.xml.h:3 +#: hacks/config/lmorph.xml.h:3 +#: hacks/config/loop.xml.h:1 +#: hacks/config/maze.xml.h:4 +#: hacks/config/memscroller.xml.h:5 +#: hacks/config/menger.xml.h:3 +#: hacks/config/metaballs.xml.h:4 +#: hacks/config/mirrorblob.xml.h:11 +#: hacks/config/mismunch.xml.h:2 +#: hacks/config/moebius.xml.h:3 +#: hacks/config/moire2.xml.h:2 +#: hacks/config/molecule.xml.h:11 +#: hacks/config/morph3d.xml.h:3 +#: hacks/config/mountain.xml.h:2 +#: hacks/config/munch.xml.h:3 +#: hacks/config/nerverot.xml.h:9 +#: hacks/config/noof.xml.h:2 +#: hacks/config/pacman.xml.h:1 +#: hacks/config/penetrate.xml.h:3 +#: hacks/config/penrose.xml.h:3 +#: hacks/config/petri.xml.h:5 +#: hacks/config/phosphor.xml.h:4 +#: hacks/config/piecewise.xml.h:4 +#: hacks/config/pinion.xml.h:5 +#: hacks/config/pipes.xml.h:5 +#: hacks/config/polyhedra.xml.h:17 +#: hacks/config/polyominoes.xml.h:2 +#: hacks/config/polytopes.xml.h:11 +#: hacks/config/pong.xml.h:1 +#: hacks/config/popsquares.xml.h:3 +#: hacks/config/providence.xml.h:2 +#: hacks/config/pulsar.xml.h:11 +#: hacks/config/pyro.xml.h:4 +#: hacks/config/qix.xml.h:7 +#: hacks/config/queens.xml.h:1 +#: hacks/config/rd-bomb.xml.h:9 +#: hacks/config/ripples.xml.h:4 +#: hacks/config/rocks.xml.h:4 +#: hacks/config/rotor.xml.h:3 +#: hacks/config/rubik.xml.h:3 +#: hacks/config/sballs.xml.h:4 +#: hacks/config/shadebobs.xml.h:3 +#: hacks/config/sierpinski.xml.h:2 +#: hacks/config/sierpinski3d.xml.h:2 +#: hacks/config/slidescreen.xml.h:2 +#: hacks/config/slip.xml.h:2 +#: hacks/config/speedmine.xml.h:3 +#: hacks/config/sphere.xml.h:2 +#: hacks/config/spheremonics.xml.h:5 +#: hacks/config/spiral.xml.h:3 +#: hacks/config/spotlight.xml.h:2 +#: hacks/config/sproingies.xml.h:2 +#: hacks/config/squiral.xml.h:4 +#: hacks/config/stairs.xml.h:1 +#: hacks/config/starfish.xml.h:3 +#: hacks/config/starwars.xml.h:6 +#: hacks/config/strange.xml.h:1 +#: hacks/config/substrate.xml.h:7 +#: hacks/config/superquadrics.xml.h:4 +#: hacks/config/swirl.xml.h:2 +#: hacks/config/t3d.xml.h:6 +#: hacks/config/tangram.xml.h:2 +#: hacks/config/thornbird.xml.h:2 +#: hacks/config/triangle.xml.h:1 +#: hacks/config/truchet.xml.h:1 +#: hacks/config/twang.xml.h:3 +#: hacks/config/vines.xml.h:1 +#: hacks/config/worm.xml.h:3 +#: hacks/config/wormhole.xml.h:2 +#: hacks/config/xearth.xml.h:7 +#: hacks/config/xfishtank.xml.h:3 +#: hacks/config/xflame.xml.h:4 +#: hacks/config/xjack.xml.h:1 +#: hacks/config/xmatrix.xml.h:5 +#: hacks/config/xmountains.xml.h:13 +#: hacks/config/xplanet.xml.h:8 +#: hacks/config/xrayswarm.xml.h:2 +#: hacks/config/zoom.xml.h:2 msgid "Fast" -msgstr "" - -#: hacks/config/anemone.xml.h:4 hacks/config/anemotaxis.xml.h:6 -#: hacks/config/blaster.xml.h:4 hacks/config/bouboule.xml.h:4 -#: hacks/config/boxed.xml.h:7 hacks/config/coral.xml.h:8 -#: hacks/config/cubenetic.xml.h:9 hacks/config/eruption.xml.h:6 -#: hacks/config/euler2d.xml.h:4 hacks/config/fiberlamp.xml.h:2 -#: hacks/config/flame.xml.h:7 hacks/config/fluidballs.xml.h:6 -#: hacks/config/fuzzyflakes.xml.h:8 hacks/config/kaleidescope.xml.h:3 -#: hacks/config/lisa.xml.h:3 hacks/config/pedal.xml.h:4 -#: hacks/config/petri.xml.h:7 hacks/config/qix.xml.h:8 -#: hacks/config/substrate.xml.h:8 hacks/config/thornbird.xml.h:3 -#: hacks/config/whirlwindwarp.xml.h:1 hacks/config/wormhole.xml.h:3 +msgstr "Rápido" + +#: hacks/config/anemone.xml.h:4 +#: hacks/config/anemotaxis.xml.h:6 +#: hacks/config/blaster.xml.h:4 +#: hacks/config/bouboule.xml.h:4 +#: hacks/config/boxed.xml.h:7 +#: hacks/config/coral.xml.h:8 +#: hacks/config/cubenetic.xml.h:9 +#: hacks/config/eruption.xml.h:6 +#: hacks/config/euler2d.xml.h:4 +#: hacks/config/fiberlamp.xml.h:2 +#: hacks/config/flame.xml.h:7 +#: hacks/config/fluidballs.xml.h:6 +#: hacks/config/fuzzyflakes.xml.h:8 +#: hacks/config/kaleidescope.xml.h:3 +#: hacks/config/lisa.xml.h:3 +#: hacks/config/pedal.xml.h:4 +#: hacks/config/petri.xml.h:7 +#: hacks/config/qix.xml.h:8 +#: hacks/config/substrate.xml.h:8 +#: hacks/config/thornbird.xml.h:3 +#: hacks/config/whirlwindwarp.xml.h:1 +#: hacks/config/wormhole.xml.h:3 #: hacks/config/xfishtank.xml.h:4 msgid "Few" -msgstr "" - -#: hacks/config/anemone.xml.h:5 hacks/config/anemotaxis.xml.h:7 -#: hacks/config/ant.xml.h:9 hacks/config/apollonian.xml.h:7 -#: hacks/config/attraction.xml.h:18 hacks/config/blaster.xml.h:6 -#: hacks/config/bouboule.xml.h:5 hacks/config/braid.xml.h:7 -#: hacks/config/coral.xml.h:9 hacks/config/critical.xml.h:4 -#: hacks/config/crystal.xml.h:8 hacks/config/cubenetic.xml.h:13 -#: hacks/config/cynosure.xml.h:6 hacks/config/deco.xml.h:5 -#: hacks/config/deluxe.xml.h:6 hacks/config/demon.xml.h:6 -#: hacks/config/discrete.xml.h:4 hacks/config/drift.xml.h:9 -#: hacks/config/epicycle.xml.h:8 hacks/config/eruption.xml.h:12 -#: hacks/config/euler2d.xml.h:8 hacks/config/fadeplot.xml.h:6 -#: hacks/config/fiberlamp.xml.h:6 hacks/config/flag.xml.h:5 -#: hacks/config/flame.xml.h:11 hacks/config/flow.xml.h:7 -#: hacks/config/fluidballs.xml.h:13 hacks/config/forest.xml.h:3 -#: hacks/config/fuzzyflakes.xml.h:12 hacks/config/galaxy.xml.h:6 -#: hacks/config/grav.xml.h:4 hacks/config/halo.xml.h:4 -#: hacks/config/hopalong.xml.h:15 hacks/config/ifs.xml.h:8 -#: hacks/config/imsmap.xml.h:9 hacks/config/interference.xml.h:14 -#: hacks/config/julia.xml.h:6 hacks/config/kaleidescope.xml.h:5 -#: hacks/config/laser.xml.h:6 hacks/config/lightning.xml.h:3 -#: hacks/config/lisa.xml.h:5 hacks/config/lissie.xml.h:6 -#: hacks/config/loop.xml.h:4 hacks/config/metaballs.xml.h:6 -#: hacks/config/mismunch.xml.h:4 hacks/config/moire.xml.h:5 -#: hacks/config/moire2.xml.h:3 hacks/config/mountain.xml.h:4 -#: hacks/config/nerverot.xml.h:15 hacks/config/pedal.xml.h:6 -#: hacks/config/penrose.xml.h:4 hacks/config/petri.xml.h:11 -#: hacks/config/polyominoes.xml.h:5 hacks/config/qix.xml.h:14 -#: hacks/config/rd-bomb.xml.h:12 hacks/config/ripples.xml.h:8 -#: hacks/config/rocks.xml.h:5 hacks/config/rotor.xml.h:6 -#: hacks/config/shadebobs.xml.h:5 hacks/config/sierpinski.xml.h:4 -#: hacks/config/slip.xml.h:4 hacks/config/sphere.xml.h:3 -#: hacks/config/spiral.xml.h:6 hacks/config/squiral.xml.h:9 -#: hacks/config/starfish.xml.h:5 hacks/config/strange.xml.h:2 -#: hacks/config/swirl.xml.h:3 hacks/config/thornbird.xml.h:4 -#: hacks/config/triangle.xml.h:3 hacks/config/vines.xml.h:2 -#: hacks/config/whirlwindwarp.xml.h:4 hacks/config/worm.xml.h:4 -#: hacks/config/xearth.xml.h:12 hacks/config/xfishtank.xml.h:8 +msgstr "Pouco" + +#: hacks/config/anemone.xml.h:5 +#: hacks/config/anemotaxis.xml.h:7 +#: hacks/config/ant.xml.h:9 +#: hacks/config/apollonian.xml.h:7 +#: hacks/config/attraction.xml.h:18 +#: hacks/config/blaster.xml.h:6 +#: hacks/config/bouboule.xml.h:5 +#: hacks/config/braid.xml.h:7 +#: hacks/config/coral.xml.h:9 +#: hacks/config/critical.xml.h:4 +#: hacks/config/crystal.xml.h:8 +#: hacks/config/cubenetic.xml.h:13 +#: hacks/config/cynosure.xml.h:6 +#: hacks/config/deco.xml.h:5 +#: hacks/config/deluxe.xml.h:6 +#: hacks/config/demon.xml.h:6 +#: hacks/config/discrete.xml.h:4 +#: hacks/config/drift.xml.h:9 +#: hacks/config/epicycle.xml.h:8 +#: hacks/config/eruption.xml.h:12 +#: hacks/config/euler2d.xml.h:8 +#: hacks/config/fadeplot.xml.h:6 +#: hacks/config/fiberlamp.xml.h:6 +#: hacks/config/flag.xml.h:5 +#: hacks/config/flame.xml.h:11 +#: hacks/config/flow.xml.h:7 +#: hacks/config/fluidballs.xml.h:13 +#: hacks/config/forest.xml.h:3 +#: hacks/config/fuzzyflakes.xml.h:12 +#: hacks/config/galaxy.xml.h:6 +#: hacks/config/grav.xml.h:4 +#: hacks/config/halo.xml.h:4 +#: hacks/config/hopalong.xml.h:15 +#: hacks/config/ifs.xml.h:8 +#: hacks/config/imsmap.xml.h:9 +#: hacks/config/interference.xml.h:14 +#: hacks/config/julia.xml.h:6 +#: hacks/config/kaleidescope.xml.h:5 +#: hacks/config/laser.xml.h:6 +#: hacks/config/lightning.xml.h:3 +#: hacks/config/lisa.xml.h:5 +#: hacks/config/lissie.xml.h:6 +#: hacks/config/loop.xml.h:4 +#: hacks/config/metaballs.xml.h:6 +#: hacks/config/mismunch.xml.h:4 +#: hacks/config/moire.xml.h:5 +#: hacks/config/moire2.xml.h:3 +#: hacks/config/mountain.xml.h:4 +#: hacks/config/nerverot.xml.h:15 +#: hacks/config/pedal.xml.h:6 +#: hacks/config/penrose.xml.h:4 +#: hacks/config/petri.xml.h:11 +#: hacks/config/polyominoes.xml.h:5 +#: hacks/config/qix.xml.h:14 +#: hacks/config/rd-bomb.xml.h:12 +#: hacks/config/ripples.xml.h:8 +#: hacks/config/rocks.xml.h:5 +#: hacks/config/rotor.xml.h:6 +#: hacks/config/shadebobs.xml.h:5 +#: hacks/config/sierpinski.xml.h:4 +#: hacks/config/slip.xml.h:4 +#: hacks/config/sphere.xml.h:3 +#: hacks/config/spiral.xml.h:6 +#: hacks/config/squiral.xml.h:9 +#: hacks/config/starfish.xml.h:5 +#: hacks/config/strange.xml.h:2 +#: hacks/config/swirl.xml.h:3 +#: hacks/config/thornbird.xml.h:4 +#: hacks/config/triangle.xml.h:3 +#: hacks/config/vines.xml.h:2 +#: hacks/config/whirlwindwarp.xml.h:4 +#: hacks/config/worm.xml.h:4 +#: hacks/config/xearth.xml.h:12 +#: hacks/config/xfishtank.xml.h:8 msgid "Many" -msgstr "" - -#: hacks/config/anemone.xml.h:6 hacks/config/ant.xml.h:11 -#: hacks/config/apollonian.xml.h:8 hacks/config/attraction.xml.h:19 -#: hacks/config/bouboule.xml.h:6 hacks/config/braid.xml.h:9 -#: hacks/config/critical.xml.h:5 hacks/config/crystal.xml.h:10 -#: hacks/config/cynosure.xml.h:7 hacks/config/deco.xml.h:8 -#: hacks/config/deluxe.xml.h:7 hacks/config/demon.xml.h:7 -#: hacks/config/discrete.xml.h:6 hacks/config/drift.xml.h:10 -#: hacks/config/epicycle.xml.h:9 hacks/config/eruption.xml.h:14 -#: hacks/config/euler2d.xml.h:9 hacks/config/fadeplot.xml.h:7 -#: hacks/config/flag.xml.h:6 hacks/config/flame.xml.h:12 -#: hacks/config/flow.xml.h:8 hacks/config/forest.xml.h:4 -#: hacks/config/galaxy.xml.h:7 hacks/config/grav.xml.h:5 -#: hacks/config/halo.xml.h:6 hacks/config/hopalong.xml.h:17 -#: hacks/config/imsmap.xml.h:10 hacks/config/interference.xml.h:15 -#: hacks/config/julia.xml.h:7 hacks/config/laser.xml.h:8 -#: hacks/config/lightning.xml.h:4 hacks/config/lisa.xml.h:6 -#: hacks/config/lissie.xml.h:7 hacks/config/loop.xml.h:5 -#: hacks/config/metaballs.xml.h:10 hacks/config/moire.xml.h:7 -#: hacks/config/moire2.xml.h:5 hacks/config/mountain.xml.h:6 -#: hacks/config/penrose.xml.h:5 hacks/config/polyominoes.xml.h:6 -#: hacks/config/popsquares.xml.h:4 hacks/config/rd-bomb.xml.h:13 -#: hacks/config/rocks.xml.h:6 hacks/config/rotor.xml.h:7 -#: hacks/config/shadebobs.xml.h:6 hacks/config/sierpinski.xml.h:5 -#: hacks/config/slip.xml.h:5 hacks/config/sphere.xml.h:4 -#: hacks/config/spiral.xml.h:8 hacks/config/squiral.xml.h:10 -#: hacks/config/starfish.xml.h:6 hacks/config/strange.xml.h:3 -#: hacks/config/swirl.xml.h:5 hacks/config/thornbird.xml.h:5 -#: hacks/config/triangle.xml.h:4 hacks/config/vines.xml.h:3 -#: hacks/config/worm.xml.h:5 hacks/config/xearth.xml.h:17 +msgstr "Muito" + +#: hacks/config/anemone.xml.h:6 +#: hacks/config/ant.xml.h:11 +#: hacks/config/apollonian.xml.h:8 +#: hacks/config/attraction.xml.h:19 +#: hacks/config/bouboule.xml.h:6 +#: hacks/config/braid.xml.h:9 +#: hacks/config/critical.xml.h:5 +#: hacks/config/crystal.xml.h:10 +#: hacks/config/cynosure.xml.h:7 +#: hacks/config/deco.xml.h:8 +#: hacks/config/deluxe.xml.h:7 +#: hacks/config/demon.xml.h:7 +#: hacks/config/discrete.xml.h:6 +#: hacks/config/drift.xml.h:10 +#: hacks/config/epicycle.xml.h:9 +#: hacks/config/eruption.xml.h:14 +#: hacks/config/euler2d.xml.h:9 +#: hacks/config/fadeplot.xml.h:7 +#: hacks/config/flag.xml.h:6 +#: hacks/config/flame.xml.h:12 +#: hacks/config/flow.xml.h:8 +#: hacks/config/forest.xml.h:4 +#: hacks/config/galaxy.xml.h:7 +#: hacks/config/grav.xml.h:5 +#: hacks/config/halo.xml.h:6 +#: hacks/config/hopalong.xml.h:17 +#: hacks/config/imsmap.xml.h:10 +#: hacks/config/interference.xml.h:15 +#: hacks/config/julia.xml.h:7 +#: hacks/config/laser.xml.h:8 +#: hacks/config/lightning.xml.h:4 +#: hacks/config/lisa.xml.h:6 +#: hacks/config/lissie.xml.h:7 +#: hacks/config/loop.xml.h:5 +#: hacks/config/metaballs.xml.h:10 +#: hacks/config/moire.xml.h:7 +#: hacks/config/moire2.xml.h:5 +#: hacks/config/mountain.xml.h:6 +#: hacks/config/penrose.xml.h:5 +#: hacks/config/polyominoes.xml.h:6 +#: hacks/config/popsquares.xml.h:4 +#: hacks/config/rd-bomb.xml.h:13 +#: hacks/config/rocks.xml.h:6 +#: hacks/config/rotor.xml.h:7 +#: hacks/config/shadebobs.xml.h:6 +#: hacks/config/sierpinski.xml.h:5 +#: hacks/config/slip.xml.h:5 +#: hacks/config/sphere.xml.h:4 +#: hacks/config/spiral.xml.h:8 +#: hacks/config/squiral.xml.h:10 +#: hacks/config/starfish.xml.h:6 +#: hacks/config/strange.xml.h:3 +#: hacks/config/swirl.xml.h:5 +#: hacks/config/thornbird.xml.h:5 +#: hacks/config/triangle.xml.h:4 +#: hacks/config/vines.xml.h:3 +#: hacks/config/worm.xml.h:5 +#: hacks/config/xearth.xml.h:17 #: hacks/config/xfishtank.xml.h:9 msgid "Number of Colors" -msgstr "" +msgstr "Número de Cores" -#: hacks/config/anemone.xml.h:7 hacks/config/fireflies.xml.h:32 +#: hacks/config/anemone.xml.h:7 +#: hacks/config/fireflies.xml.h:32 #: hacks/config/pyro.xml.h:8 msgid "Often" -msgstr "" +msgstr "Frequentemente" #: hacks/config/anemone.xml.h:8 msgid "Rarely" -msgstr "" - -#: hacks/config/anemone.xml.h:9 hacks/config/anemotaxis.xml.h:10 -#: hacks/config/ant.xml.h:15 hacks/config/antinspect.xml.h:6 -#: hacks/config/antmaze.xml.h:5 hacks/config/antspotlight.xml.h:5 -#: hacks/config/apollonian.xml.h:11 hacks/config/atlantis.xml.h:13 -#: hacks/config/attraction.xml.h:26 hacks/config/atunnel.xml.h:6 -#: hacks/config/barcode.xml.h:6 hacks/config/blaster.xml.h:8 -#: hacks/config/blinkbox.xml.h:8 hacks/config/blitspin.xml.h:7 -#: hacks/config/blocktube.xml.h:9 hacks/config/boing.xml.h:10 -#: hacks/config/bouboule.xml.h:8 hacks/config/bouncingcow.xml.h:10 -#: hacks/config/boxed.xml.h:15 hacks/config/boxfit.xml.h:12 -#: hacks/config/braid.xml.h:11 hacks/config/bubble3d.xml.h:6 -#: hacks/config/bubbles.xml.h:10 hacks/config/bumps.xml.h:4 -#: hacks/config/cage.xml.h:4 hacks/config/carousel.xml.h:14 -#: hacks/config/ccurve.xml.h:11 hacks/config/celtic.xml.h:8 -#: hacks/config/circuit.xml.h:10 hacks/config/cloudlife.xml.h:11 -#: hacks/config/compass.xml.h:4 hacks/config/coral.xml.h:12 -#: hacks/config/critical.xml.h:6 hacks/config/crystal.xml.h:11 -#: hacks/config/cube21.xml.h:16 hacks/config/cubenetic.xml.h:22 -#: hacks/config/cubestorm.xml.h:8 hacks/config/cynosure.xml.h:9 -#: hacks/config/dangerball.xml.h:5 hacks/config/decayscreen.xml.h:17 -#: hacks/config/deluxe.xml.h:8 hacks/config/demon.xml.h:8 -#: hacks/config/discrete.xml.h:7 hacks/config/distort.xml.h:11 -#: hacks/config/drift.xml.h:12 hacks/config/endgame.xml.h:5 -#: hacks/config/engine.xml.h:15 hacks/config/epicycle.xml.h:10 -#: hacks/config/eruption.xml.h:19 hacks/config/euler2d.xml.h:14 -#: hacks/config/extrusion.xml.h:11 hacks/config/fadeplot.xml.h:8 -#: hacks/config/fireworkx.xml.h:9 hacks/config/flag.xml.h:7 -#: hacks/config/flame.xml.h:14 hacks/config/flipflop.xml.h:5 -#: hacks/config/flipscreen3d.xml.h:6 hacks/config/fliptext.xml.h:13 -#: hacks/config/flow.xml.h:10 hacks/config/fluidballs.xml.h:18 -#: hacks/config/flyingtoasters.xml.h:11 hacks/config/fontglide.xml.h:13 -#: hacks/config/forest.xml.h:5 hacks/config/fuzzyflakes.xml.h:15 -#: hacks/config/galaxy.xml.h:11 hacks/config/gears.xml.h:7 -#: hacks/config/gflux.xml.h:12 hacks/config/glblur.xml.h:14 -#: hacks/config/glforestfire.xml.h:14 hacks/config/glhanoi.xml.h:8 -#: hacks/config/glknots.xml.h:17 hacks/config/glmatrix.xml.h:18 -#: hacks/config/glplanet.xml.h:8 hacks/config/glsnake.xml.h:12 -#: hacks/config/gltext.xml.h:15 hacks/config/goop.xml.h:10 -#: hacks/config/grav.xml.h:8 hacks/config/greynetic.xml.h:3 -#: hacks/config/halo.xml.h:10 hacks/config/hopalong.xml.h:21 -#: hacks/config/hyperball.xml.h:8 hacks/config/hypercube.xml.h:7 -#: hacks/config/hypertorus.xml.h:18 hacks/config/ifs.xml.h:13 -#: hacks/config/interaggregate.xml.h:4 hacks/config/interference.xml.h:17 -#: hacks/config/intermomentary.xml.h:4 hacks/config/jigglypuff.xml.h:16 -#: hacks/config/jigsaw.xml.h:5 hacks/config/juggle.xml.h:8 -#: hacks/config/juggler3d.xml.h:12 hacks/config/julia.xml.h:8 -#: hacks/config/kaleidescope.xml.h:7 hacks/config/klein.xml.h:7 -#: hacks/config/kumppa.xml.h:8 hacks/config/lament.xml.h:6 -#: hacks/config/laser.xml.h:10 hacks/config/lavalite.xml.h:27 -#: hacks/config/lightning.xml.h:5 hacks/config/lisa.xml.h:8 -#: hacks/config/lissie.xml.h:9 hacks/config/lmorph.xml.h:11 -#: hacks/config/loop.xml.h:7 hacks/config/maze.xml.h:14 -#: hacks/config/memscroller.xml.h:7 hacks/config/menger.xml.h:16 -#: hacks/config/metaballs.xml.h:13 hacks/config/mirrorblob.xml.h:18 -#: hacks/config/mismunch.xml.h:10 hacks/config/moebius.xml.h:7 -#: hacks/config/moire2.xml.h:6 hacks/config/molecule.xml.h:23 -#: hacks/config/morph3d.xml.h:6 hacks/config/mountain.xml.h:7 -#: hacks/config/munch.xml.h:7 hacks/config/nerverot.xml.h:20 -#: hacks/config/noof.xml.h:5 hacks/config/pacman.xml.h:5 -#: hacks/config/penetrate.xml.h:6 hacks/config/penrose.xml.h:8 -#: hacks/config/petri.xml.h:23 hacks/config/phosphor.xml.h:7 -#: hacks/config/piecewise.xml.h:9 hacks/config/pinion.xml.h:13 -#: hacks/config/pipes.xml.h:15 hacks/config/polyhedra.xml.h:111 -#: hacks/config/polyominoes.xml.h:10 hacks/config/polytopes.xml.h:20 -#: hacks/config/pong.xml.h:4 hacks/config/popsquares.xml.h:5 -#: hacks/config/providence.xml.h:5 hacks/config/pulsar.xml.h:15 -#: hacks/config/pyro.xml.h:13 hacks/config/qix.xml.h:19 -#: hacks/config/queens.xml.h:4 hacks/config/rd-bomb.xml.h:17 -#: hacks/config/ripples.xml.h:12 hacks/config/rocks.xml.h:9 -#: hacks/config/rotor.xml.h:11 hacks/config/rubik.xml.h:9 -#: hacks/config/sballs.xml.h:13 hacks/config/shadebobs.xml.h:9 -#: hacks/config/sierpinski.xml.h:7 hacks/config/sierpinski3d.xml.h:8 -#: hacks/config/slidescreen.xml.h:6 hacks/config/slip.xml.h:7 -#: hacks/config/speedmine.xml.h:13 hacks/config/sphere.xml.h:5 -#: hacks/config/spheremonics.xml.h:19 hacks/config/spiral.xml.h:9 -#: hacks/config/spotlight.xml.h:4 hacks/config/sproingies.xml.h:6 -#: hacks/config/squiral.xml.h:14 hacks/config/stairs.xml.h:3 -#: hacks/config/starfish.xml.h:8 hacks/config/starwars.xml.h:12 -#: hacks/config/strange.xml.h:4 hacks/config/substrate.xml.h:15 -#: hacks/config/superquadrics.xml.h:8 hacks/config/swirl.xml.h:6 -#: hacks/config/t3d.xml.h:11 hacks/config/tangram.xml.h:4 -#: hacks/config/thornbird.xml.h:7 hacks/config/triangle.xml.h:5 -#: hacks/config/truchet.xml.h:2 hacks/config/twang.xml.h:9 -#: hacks/config/vines.xml.h:4 hacks/config/worm.xml.h:7 -#: hacks/config/wormhole.xml.h:5 hacks/config/xearth.xml.h:22 -#: hacks/config/xfishtank.xml.h:10 hacks/config/xflame.xml.h:5 -#: hacks/config/xjack.xml.h:2 hacks/config/xmatrix.xml.h:15 -#: hacks/config/xplanet.xml.h:59 hacks/config/xrayswarm.xml.h:3 +msgstr "Raramente" + +#: hacks/config/anemone.xml.h:9 +#: hacks/config/anemotaxis.xml.h:10 +#: hacks/config/ant.xml.h:15 +#: hacks/config/antinspect.xml.h:6 +#: hacks/config/antmaze.xml.h:5 +#: hacks/config/antspotlight.xml.h:5 +#: hacks/config/apollonian.xml.h:11 +#: hacks/config/atlantis.xml.h:13 +#: hacks/config/attraction.xml.h:26 +#: hacks/config/atunnel.xml.h:6 +#: hacks/config/barcode.xml.h:6 +#: hacks/config/blaster.xml.h:8 +#: hacks/config/blinkbox.xml.h:8 +#: hacks/config/blitspin.xml.h:7 +#: hacks/config/blocktube.xml.h:9 +#: hacks/config/boing.xml.h:10 +#: hacks/config/bouboule.xml.h:8 +#: hacks/config/bouncingcow.xml.h:10 +#: hacks/config/boxed.xml.h:15 +#: hacks/config/boxfit.xml.h:12 +#: hacks/config/braid.xml.h:11 +#: hacks/config/bubble3d.xml.h:6 +#: hacks/config/bubbles.xml.h:10 +#: hacks/config/bumps.xml.h:4 +#: hacks/config/cage.xml.h:4 +#: hacks/config/carousel.xml.h:14 +#: hacks/config/ccurve.xml.h:11 +#: hacks/config/celtic.xml.h:8 +#: hacks/config/circuit.xml.h:10 +#: hacks/config/cloudlife.xml.h:11 +#: hacks/config/compass.xml.h:4 +#: hacks/config/coral.xml.h:12 +#: hacks/config/critical.xml.h:6 +#: hacks/config/crystal.xml.h:11 +#: hacks/config/cube21.xml.h:16 +#: hacks/config/cubenetic.xml.h:22 +#: hacks/config/cubestorm.xml.h:8 +#: hacks/config/cynosure.xml.h:9 +#: hacks/config/dangerball.xml.h:5 +#: hacks/config/decayscreen.xml.h:17 +#: hacks/config/deluxe.xml.h:8 +#: hacks/config/demon.xml.h:8 +#: hacks/config/discrete.xml.h:7 +#: hacks/config/distort.xml.h:11 +#: hacks/config/drift.xml.h:12 +#: hacks/config/endgame.xml.h:5 +#: hacks/config/engine.xml.h:15 +#: hacks/config/epicycle.xml.h:10 +#: hacks/config/eruption.xml.h:19 +#: hacks/config/euler2d.xml.h:14 +#: hacks/config/extrusion.xml.h:11 +#: hacks/config/fadeplot.xml.h:8 +#: hacks/config/fireworkx.xml.h:9 +#: hacks/config/flag.xml.h:7 +#: hacks/config/flame.xml.h:14 +#: hacks/config/flipflop.xml.h:5 +#: hacks/config/flipscreen3d.xml.h:6 +#: hacks/config/fliptext.xml.h:13 +#: hacks/config/flow.xml.h:10 +#: hacks/config/fluidballs.xml.h:18 +#: hacks/config/flyingtoasters.xml.h:11 +#: hacks/config/fontglide.xml.h:13 +#: hacks/config/forest.xml.h:5 +#: hacks/config/fuzzyflakes.xml.h:15 +#: hacks/config/galaxy.xml.h:11 +#: hacks/config/gears.xml.h:7 +#: hacks/config/gflux.xml.h:12 +#: hacks/config/glblur.xml.h:14 +#: hacks/config/glforestfire.xml.h:14 +#: hacks/config/glhanoi.xml.h:8 +#: hacks/config/glknots.xml.h:17 +#: hacks/config/glmatrix.xml.h:18 +#: hacks/config/glplanet.xml.h:8 +#: hacks/config/glsnake.xml.h:12 +#: hacks/config/gltext.xml.h:15 +#: hacks/config/goop.xml.h:10 +#: hacks/config/grav.xml.h:8 +#: hacks/config/greynetic.xml.h:3 +#: hacks/config/halo.xml.h:10 +#: hacks/config/hopalong.xml.h:21 +#: hacks/config/hyperball.xml.h:8 +#: hacks/config/hypercube.xml.h:7 +#: hacks/config/hypertorus.xml.h:18 +#: hacks/config/ifs.xml.h:13 +#: hacks/config/interaggregate.xml.h:4 +#: hacks/config/interference.xml.h:17 +#: hacks/config/intermomentary.xml.h:4 +#: hacks/config/jigglypuff.xml.h:16 +#: hacks/config/jigsaw.xml.h:5 +#: hacks/config/juggle.xml.h:8 +#: hacks/config/juggler3d.xml.h:12 +#: hacks/config/julia.xml.h:8 +#: hacks/config/kaleidescope.xml.h:7 +#: hacks/config/klein.xml.h:7 +#: hacks/config/kumppa.xml.h:8 +#: hacks/config/lament.xml.h:6 +#: hacks/config/laser.xml.h:10 +#: hacks/config/lavalite.xml.h:27 +#: hacks/config/lightning.xml.h:5 +#: hacks/config/lisa.xml.h:8 +#: hacks/config/lissie.xml.h:9 +#: hacks/config/lmorph.xml.h:11 +#: hacks/config/loop.xml.h:7 +#: hacks/config/maze.xml.h:14 +#: hacks/config/memscroller.xml.h:7 +#: hacks/config/menger.xml.h:16 +#: hacks/config/metaballs.xml.h:13 +#: hacks/config/mirrorblob.xml.h:18 +#: hacks/config/mismunch.xml.h:10 +#: hacks/config/moebius.xml.h:7 +#: hacks/config/moire2.xml.h:6 +#: hacks/config/molecule.xml.h:23 +#: hacks/config/morph3d.xml.h:6 +#: hacks/config/mountain.xml.h:7 +#: hacks/config/munch.xml.h:7 +#: hacks/config/nerverot.xml.h:20 +#: hacks/config/noof.xml.h:5 +#: hacks/config/pacman.xml.h:5 +#: hacks/config/penetrate.xml.h:6 +#: hacks/config/penrose.xml.h:8 +#: hacks/config/petri.xml.h:23 +#: hacks/config/phosphor.xml.h:7 +#: hacks/config/piecewise.xml.h:9 +#: hacks/config/pinion.xml.h:13 +#: hacks/config/pipes.xml.h:15 +#: hacks/config/polyhedra.xml.h:111 +#: hacks/config/polyominoes.xml.h:10 +#: hacks/config/polytopes.xml.h:20 +#: hacks/config/pong.xml.h:4 +#: hacks/config/popsquares.xml.h:5 +#: hacks/config/providence.xml.h:5 +#: hacks/config/pulsar.xml.h:15 +#: hacks/config/pyro.xml.h:13 +#: hacks/config/qix.xml.h:19 +#: hacks/config/queens.xml.h:4 +#: hacks/config/rd-bomb.xml.h:17 +#: hacks/config/ripples.xml.h:12 +#: hacks/config/rocks.xml.h:9 +#: hacks/config/rotor.xml.h:11 +#: hacks/config/rubik.xml.h:9 +#: hacks/config/sballs.xml.h:13 +#: hacks/config/shadebobs.xml.h:9 +#: hacks/config/sierpinski.xml.h:7 +#: hacks/config/sierpinski3d.xml.h:8 +#: hacks/config/slidescreen.xml.h:6 +#: hacks/config/slip.xml.h:7 +#: hacks/config/speedmine.xml.h:13 +#: hacks/config/sphere.xml.h:5 +#: hacks/config/spheremonics.xml.h:19 +#: hacks/config/spiral.xml.h:9 +#: hacks/config/spotlight.xml.h:4 +#: hacks/config/sproingies.xml.h:6 +#: hacks/config/squiral.xml.h:14 +#: hacks/config/stairs.xml.h:3 +#: hacks/config/starfish.xml.h:8 +#: hacks/config/starwars.xml.h:12 +#: hacks/config/strange.xml.h:4 +#: hacks/config/substrate.xml.h:15 +#: hacks/config/superquadrics.xml.h:8 +#: hacks/config/swirl.xml.h:6 +#: hacks/config/t3d.xml.h:11 +#: hacks/config/tangram.xml.h:4 +#: hacks/config/thornbird.xml.h:7 +#: hacks/config/triangle.xml.h:5 +#: hacks/config/truchet.xml.h:2 +#: hacks/config/twang.xml.h:9 +#: hacks/config/vines.xml.h:4 +#: hacks/config/worm.xml.h:7 +#: hacks/config/wormhole.xml.h:5 +#: hacks/config/xearth.xml.h:22 +#: hacks/config/xfishtank.xml.h:10 +#: hacks/config/xflame.xml.h:5 +#: hacks/config/xjack.xml.h:2 +#: hacks/config/xmatrix.xml.h:15 +#: hacks/config/xplanet.xml.h:59 +#: hacks/config/xrayswarm.xml.h:3 #: hacks/config/zoom.xml.h:6 msgid "Slow" -msgstr "" - -#: hacks/config/anemone.xml.h:10 hacks/config/anemotaxis.xml.h:12 -#: hacks/config/ant.xml.h:17 hacks/config/antinspect.xml.h:7 -#: hacks/config/antmaze.xml.h:6 hacks/config/antspotlight.xml.h:6 -#: hacks/config/apollonian.xml.h:12 hacks/config/attraction.xml.h:28 -#: hacks/config/atunnel.xml.h:7 hacks/config/barcode.xml.h:7 -#: hacks/config/blaster.xml.h:9 hacks/config/blinkbox.xml.h:9 -#: hacks/config/blocktube.xml.h:11 hacks/config/boing.xml.h:12 -#: hacks/config/bouboule.xml.h:9 hacks/config/boxfit.xml.h:14 -#: hacks/config/braid.xml.h:12 hacks/config/bubble3d.xml.h:7 -#: hacks/config/bubbles.xml.h:11 hacks/config/bumps.xml.h:5 -#: hacks/config/cage.xml.h:6 hacks/config/celtic.xml.h:9 -#: hacks/config/circuit.xml.h:11 hacks/config/cloudlife.xml.h:13 -#: hacks/config/compass.xml.h:5 hacks/config/coral.xml.h:14 -#: hacks/config/critical.xml.h:7 hacks/config/crystal.xml.h:12 -#: hacks/config/cubenetic.xml.h:24 hacks/config/cynosure.xml.h:10 -#: hacks/config/dangerball.xml.h:6 hacks/config/decayscreen.xml.h:18 -#: hacks/config/deluxe.xml.h:9 hacks/config/demon.xml.h:10 -#: hacks/config/discrete.xml.h:9 hacks/config/distort.xml.h:13 -#: hacks/config/drift.xml.h:13 hacks/config/endgame.xml.h:6 -#: hacks/config/engine.xml.h:16 hacks/config/epicycle.xml.h:11 -#: hacks/config/eruption.xml.h:20 hacks/config/euler2d.xml.h:15 -#: hacks/config/extrusion.xml.h:13 hacks/config/fadeplot.xml.h:10 -#: hacks/config/fireworkx.xml.h:11 hacks/config/flag.xml.h:9 -#: hacks/config/flame.xml.h:15 hacks/config/flipflop.xml.h:7 -#: hacks/config/flipscreen3d.xml.h:7 hacks/config/fliptext.xml.h:14 -#: hacks/config/flow.xml.h:12 hacks/config/fluidballs.xml.h:20 -#: hacks/config/forest.xml.h:6 hacks/config/fuzzyflakes.xml.h:17 -#: hacks/config/galaxy.xml.h:12 hacks/config/glblur.xml.h:16 -#: hacks/config/glforestfire.xml.h:15 hacks/config/glplanet.xml.h:10 -#: hacks/config/gltext.xml.h:17 hacks/config/goop.xml.h:11 -#: hacks/config/grav.xml.h:9 hacks/config/greynetic.xml.h:4 -#: hacks/config/halo.xml.h:11 hacks/config/hopalong.xml.h:23 -#: hacks/config/hyperball.xml.h:9 hacks/config/hypercube.xml.h:8 -#: hacks/config/ifs.xml.h:14 hacks/config/interaggregate.xml.h:5 -#: hacks/config/intermomentary.xml.h:5 hacks/config/jigsaw.xml.h:7 -#: hacks/config/juggle.xml.h:9 hacks/config/julia.xml.h:10 -#: hacks/config/kaleidescope.xml.h:8 hacks/config/klein.xml.h:8 -#: hacks/config/kumppa.xml.h:9 hacks/config/lament.xml.h:7 -#: hacks/config/laser.xml.h:11 hacks/config/lavalite.xml.h:30 -#: hacks/config/lightning.xml.h:6 hacks/config/lisa.xml.h:9 -#: hacks/config/lissie.xml.h:11 hacks/config/lmorph.xml.h:12 -#: hacks/config/loop.xml.h:9 hacks/config/memscroller.xml.h:8 -#: hacks/config/menger.xml.h:18 hacks/config/metaballs.xml.h:15 -#: hacks/config/mirrorblob.xml.h:20 hacks/config/mismunch.xml.h:12 -#: hacks/config/moebius.xml.h:10 hacks/config/moire2.xml.h:7 -#: hacks/config/molecule.xml.h:25 hacks/config/morph3d.xml.h:7 -#: hacks/config/mountain.xml.h:8 hacks/config/munch.xml.h:9 -#: hacks/config/nerverot.xml.h:22 hacks/config/noof.xml.h:6 -#: hacks/config/pacman.xml.h:6 hacks/config/penrose.xml.h:9 -#: hacks/config/petri.xml.h:25 hacks/config/phosphor.xml.h:8 -#: hacks/config/piecewise.xml.h:11 hacks/config/pipes.xml.h:16 -#: hacks/config/polyominoes.xml.h:11 hacks/config/pong.xml.h:5 -#: hacks/config/popsquares.xml.h:6 hacks/config/providence.xml.h:7 -#: hacks/config/pulsar.xml.h:17 hacks/config/qix.xml.h:22 -#: hacks/config/queens.xml.h:6 hacks/config/rotor.xml.h:12 -#: hacks/config/rubik.xml.h:11 hacks/config/sballs.xml.h:14 -#: hacks/config/shadebobs.xml.h:10 hacks/config/sierpinski.xml.h:9 -#: hacks/config/sierpinski3d.xml.h:10 hacks/config/slidescreen.xml.h:7 -#: hacks/config/slip.xml.h:9 hacks/config/speedmine.xml.h:15 -#: hacks/config/sphere.xml.h:6 hacks/config/spheremonics.xml.h:22 -#: hacks/config/spiral.xml.h:10 hacks/config/spotlight.xml.h:5 -#: hacks/config/sproingies.xml.h:8 hacks/config/squiral.xml.h:16 -#: hacks/config/stairs.xml.h:5 hacks/config/starfish.xml.h:9 -#: hacks/config/strange.xml.h:5 hacks/config/substrate.xml.h:16 -#: hacks/config/superquadrics.xml.h:10 hacks/config/swirl.xml.h:7 -#: hacks/config/t3d.xml.h:13 hacks/config/tangram.xml.h:5 -#: hacks/config/thornbird.xml.h:8 hacks/config/triangle.xml.h:6 -#: hacks/config/truchet.xml.h:3 hacks/config/twang.xml.h:10 -#: hacks/config/vines.xml.h:5 hacks/config/whirlygig.xml.h:13 -#: hacks/config/worm.xml.h:8 hacks/config/xearth.xml.h:25 -#: hacks/config/xflame.xml.h:6 hacks/config/xjack.xml.h:3 -#: hacks/config/xmatrix.xml.h:18 hacks/config/xplanet.xml.h:60 -#: hacks/config/xrayswarm.xml.h:4 hacks/config/zoom.xml.h:7 +msgstr "Devagar" + +#: hacks/config/anemone.xml.h:10 +#: hacks/config/anemotaxis.xml.h:12 +#: hacks/config/ant.xml.h:17 +#: hacks/config/antinspect.xml.h:7 +#: hacks/config/antmaze.xml.h:6 +#: hacks/config/antspotlight.xml.h:6 +#: hacks/config/apollonian.xml.h:12 +#: hacks/config/attraction.xml.h:28 +#: hacks/config/atunnel.xml.h:7 +#: hacks/config/barcode.xml.h:7 +#: hacks/config/blaster.xml.h:9 +#: hacks/config/blinkbox.xml.h:9 +#: hacks/config/blocktube.xml.h:11 +#: hacks/config/boing.xml.h:12 +#: hacks/config/bouboule.xml.h:9 +#: hacks/config/boxfit.xml.h:14 +#: hacks/config/braid.xml.h:12 +#: hacks/config/bubble3d.xml.h:7 +#: hacks/config/bubbles.xml.h:11 +#: hacks/config/bumps.xml.h:5 +#: hacks/config/cage.xml.h:6 +#: hacks/config/celtic.xml.h:9 +#: hacks/config/circuit.xml.h:11 +#: hacks/config/cloudlife.xml.h:13 +#: hacks/config/compass.xml.h:5 +#: hacks/config/coral.xml.h:14 +#: hacks/config/critical.xml.h:7 +#: hacks/config/crystal.xml.h:12 +#: hacks/config/cubenetic.xml.h:24 +#: hacks/config/cynosure.xml.h:10 +#: hacks/config/dangerball.xml.h:6 +#: hacks/config/decayscreen.xml.h:18 +#: hacks/config/deluxe.xml.h:9 +#: hacks/config/demon.xml.h:10 +#: hacks/config/discrete.xml.h:9 +#: hacks/config/distort.xml.h:13 +#: hacks/config/drift.xml.h:13 +#: hacks/config/endgame.xml.h:6 +#: hacks/config/engine.xml.h:16 +#: hacks/config/epicycle.xml.h:11 +#: hacks/config/eruption.xml.h:20 +#: hacks/config/euler2d.xml.h:15 +#: hacks/config/extrusion.xml.h:13 +#: hacks/config/fadeplot.xml.h:10 +#: hacks/config/fireworkx.xml.h:11 +#: hacks/config/flag.xml.h:9 +#: hacks/config/flame.xml.h:15 +#: hacks/config/flipflop.xml.h:7 +#: hacks/config/flipscreen3d.xml.h:7 +#: hacks/config/fliptext.xml.h:14 +#: hacks/config/flow.xml.h:12 +#: hacks/config/fluidballs.xml.h:20 +#: hacks/config/forest.xml.h:6 +#: hacks/config/fuzzyflakes.xml.h:17 +#: hacks/config/galaxy.xml.h:12 +#: hacks/config/glblur.xml.h:16 +#: hacks/config/glforestfire.xml.h:15 +#: hacks/config/glplanet.xml.h:10 +#: hacks/config/gltext.xml.h:17 +#: hacks/config/goop.xml.h:11 +#: hacks/config/grav.xml.h:9 +#: hacks/config/greynetic.xml.h:4 +#: hacks/config/halo.xml.h:11 +#: hacks/config/hopalong.xml.h:23 +#: hacks/config/hyperball.xml.h:9 +#: hacks/config/hypercube.xml.h:8 +#: hacks/config/ifs.xml.h:14 +#: hacks/config/interaggregate.xml.h:5 +#: hacks/config/intermomentary.xml.h:5 +#: hacks/config/jigsaw.xml.h:7 +#: hacks/config/juggle.xml.h:9 +#: hacks/config/julia.xml.h:10 +#: hacks/config/kaleidescope.xml.h:8 +#: hacks/config/klein.xml.h:8 +#: hacks/config/kumppa.xml.h:9 +#: hacks/config/lament.xml.h:7 +#: hacks/config/laser.xml.h:11 +#: hacks/config/lavalite.xml.h:30 +#: hacks/config/lightning.xml.h:6 +#: hacks/config/lisa.xml.h:9 +#: hacks/config/lissie.xml.h:11 +#: hacks/config/lmorph.xml.h:12 +#: hacks/config/loop.xml.h:9 +#: hacks/config/memscroller.xml.h:8 +#: hacks/config/menger.xml.h:18 +#: hacks/config/metaballs.xml.h:15 +#: hacks/config/mirrorblob.xml.h:20 +#: hacks/config/mismunch.xml.h:12 +#: hacks/config/moebius.xml.h:10 +#: hacks/config/moire2.xml.h:7 +#: hacks/config/molecule.xml.h:25 +#: hacks/config/morph3d.xml.h:7 +#: hacks/config/mountain.xml.h:8 +#: hacks/config/munch.xml.h:9 +#: hacks/config/nerverot.xml.h:22 +#: hacks/config/noof.xml.h:6 +#: hacks/config/pacman.xml.h:6 +#: hacks/config/penrose.xml.h:9 +#: hacks/config/petri.xml.h:25 +#: hacks/config/phosphor.xml.h:8 +#: hacks/config/piecewise.xml.h:11 +#: hacks/config/pipes.xml.h:16 +#: hacks/config/polyominoes.xml.h:11 +#: hacks/config/pong.xml.h:5 +#: hacks/config/popsquares.xml.h:6 +#: hacks/config/providence.xml.h:7 +#: hacks/config/pulsar.xml.h:17 +#: hacks/config/qix.xml.h:22 +#: hacks/config/queens.xml.h:6 +#: hacks/config/rotor.xml.h:12 +#: hacks/config/rubik.xml.h:11 +#: hacks/config/sballs.xml.h:14 +#: hacks/config/shadebobs.xml.h:10 +#: hacks/config/sierpinski.xml.h:9 +#: hacks/config/sierpinski3d.xml.h:10 +#: hacks/config/slidescreen.xml.h:7 +#: hacks/config/slip.xml.h:9 +#: hacks/config/speedmine.xml.h:15 +#: hacks/config/sphere.xml.h:6 +#: hacks/config/spheremonics.xml.h:22 +#: hacks/config/spiral.xml.h:10 +#: hacks/config/spotlight.xml.h:5 +#: hacks/config/sproingies.xml.h:8 +#: hacks/config/squiral.xml.h:16 +#: hacks/config/stairs.xml.h:5 +#: hacks/config/starfish.xml.h:9 +#: hacks/config/strange.xml.h:5 +#: hacks/config/substrate.xml.h:16 +#: hacks/config/superquadrics.xml.h:10 +#: hacks/config/swirl.xml.h:7 +#: hacks/config/t3d.xml.h:13 +#: hacks/config/tangram.xml.h:5 +#: hacks/config/thornbird.xml.h:8 +#: hacks/config/triangle.xml.h:6 +#: hacks/config/truchet.xml.h:3 +#: hacks/config/twang.xml.h:10 +#: hacks/config/vines.xml.h:5 +#: hacks/config/whirlygig.xml.h:13 +#: hacks/config/worm.xml.h:8 +#: hacks/config/xearth.xml.h:25 +#: hacks/config/xflame.xml.h:6 +#: hacks/config/xjack.xml.h:3 +#: hacks/config/xmatrix.xml.h:18 +#: hacks/config/xplanet.xml.h:60 +#: hacks/config/xrayswarm.xml.h:4 +#: hacks/config/zoom.xml.h:7 msgid "Speed" -msgstr "" +msgstr "Velocidade" #: hacks/config/anemone.xml.h:11 msgid "Tentacles" -msgstr "" - -#: hacks/config/anemone.xml.h:12 hacks/config/cubestorm.xml.h:11 -#: hacks/config/deluxe.xml.h:10 hacks/config/fuzzyflakes.xml.h:18 -#: hacks/config/glknots.xml.h:19 hacks/config/lmorph.xml.h:13 -#: hacks/config/pong.xml.h:7 hacks/config/starfish.xml.h:11 +msgstr "Tentáculos" + +#: hacks/config/anemone.xml.h:12 +#: hacks/config/cubestorm.xml.h:11 +#: hacks/config/deluxe.xml.h:10 +#: hacks/config/fuzzyflakes.xml.h:18 +#: hacks/config/glknots.xml.h:19 +#: hacks/config/lmorph.xml.h:13 +#: hacks/config/pong.xml.h:7 +#: hacks/config/starfish.xml.h:11 #: hacks/config/thornbird.xml.h:9 msgid "Thick" -msgstr "" +msgstr "Grosso" -#: hacks/config/anemone.xml.h:13 hacks/config/fuzzyflakes.xml.h:19 -#: hacks/config/glknots.xml.h:20 hacks/config/moire2.xml.h:8 +#: hacks/config/anemone.xml.h:13 +#: hacks/config/fuzzyflakes.xml.h:19 +#: hacks/config/glknots.xml.h:20 +#: hacks/config/moire2.xml.h:8 #: hacks/config/thornbird.xml.h:10 msgid "Thickness" -msgstr "" - -#: hacks/config/anemone.xml.h:14 hacks/config/cubestorm.xml.h:12 -#: hacks/config/deluxe.xml.h:11 hacks/config/fuzzyflakes.xml.h:20 -#: hacks/config/glknots.xml.h:21 hacks/config/lmorph.xml.h:14 -#: hacks/config/pong.xml.h:8 hacks/config/starfish.xml.h:12 +msgstr "Espessura" + +#: hacks/config/anemone.xml.h:14 +#: hacks/config/cubestorm.xml.h:12 +#: hacks/config/deluxe.xml.h:11 +#: hacks/config/fuzzyflakes.xml.h:20 +#: hacks/config/glknots.xml.h:21 +#: hacks/config/lmorph.xml.h:14 +#: hacks/config/pong.xml.h:8 +#: hacks/config/starfish.xml.h:12 #: hacks/config/thornbird.xml.h:11 msgid "Thin" -msgstr "" +msgstr "Fino" #: hacks/config/anemone.xml.h:15 msgid "Turn speed" -msgstr "" - -#: hacks/config/anemone.xml.h:16 hacks/config/ant.xml.h:22 -#: hacks/config/apollonian.xml.h:13 hacks/config/attraction.xml.h:32 -#: hacks/config/bouboule.xml.h:11 hacks/config/braid.xml.h:13 -#: hacks/config/critical.xml.h:8 hacks/config/crystal.xml.h:13 -#: hacks/config/cynosure.xml.h:11 hacks/config/deco.xml.h:10 -#: hacks/config/deluxe.xml.h:14 hacks/config/demon.xml.h:13 -#: hacks/config/discrete.xml.h:11 hacks/config/drift.xml.h:14 -#: hacks/config/epicycle.xml.h:13 hacks/config/euler2d.xml.h:17 -#: hacks/config/fadeplot.xml.h:12 hacks/config/flag.xml.h:13 -#: hacks/config/flame.xml.h:16 hacks/config/flow.xml.h:15 -#: hacks/config/forest.xml.h:8 hacks/config/galaxy.xml.h:14 -#: hacks/config/grav.xml.h:11 hacks/config/halo.xml.h:13 -#: hacks/config/hopalong.xml.h:25 hacks/config/imsmap.xml.h:15 -#: hacks/config/interference.xml.h:19 hacks/config/julia.xml.h:12 -#: hacks/config/laser.xml.h:12 hacks/config/lightning.xml.h:8 -#: hacks/config/lisa.xml.h:12 hacks/config/lissie.xml.h:13 -#: hacks/config/loop.xml.h:12 hacks/config/metaballs.xml.h:16 -#: hacks/config/moire.xml.h:11 hacks/config/moire2.xml.h:9 -#: hacks/config/mountain.xml.h:9 hacks/config/nerverot.xml.h:23 -#: hacks/config/penrose.xml.h:10 hacks/config/polyominoes.xml.h:12 -#: hacks/config/rd-bomb.xml.h:20 hacks/config/rocks.xml.h:12 -#: hacks/config/rotor.xml.h:13 hacks/config/shadebobs.xml.h:12 -#: hacks/config/sierpinski.xml.h:12 hacks/config/slip.xml.h:12 -#: hacks/config/sphere.xml.h:8 hacks/config/spiral.xml.h:12 -#: hacks/config/squiral.xml.h:18 hacks/config/starfish.xml.h:14 -#: hacks/config/strange.xml.h:8 hacks/config/swirl.xml.h:9 -#: hacks/config/thornbird.xml.h:13 hacks/config/triangle.xml.h:8 -#: hacks/config/vines.xml.h:7 hacks/config/worm.xml.h:9 -#: hacks/config/xearth.xml.h:28 hacks/config/xfishtank.xml.h:11 +msgstr "Velocidade de Giro" + +#: hacks/config/anemone.xml.h:16 +#: hacks/config/ant.xml.h:22 +#: hacks/config/apollonian.xml.h:13 +#: hacks/config/attraction.xml.h:32 +#: hacks/config/bouboule.xml.h:11 +#: hacks/config/braid.xml.h:13 +#: hacks/config/critical.xml.h:8 +#: hacks/config/crystal.xml.h:13 +#: hacks/config/cynosure.xml.h:11 +#: hacks/config/deco.xml.h:10 +#: hacks/config/deluxe.xml.h:14 +#: hacks/config/demon.xml.h:13 +#: hacks/config/discrete.xml.h:11 +#: hacks/config/drift.xml.h:14 +#: hacks/config/epicycle.xml.h:13 +#: hacks/config/euler2d.xml.h:17 +#: hacks/config/fadeplot.xml.h:12 +#: hacks/config/flag.xml.h:13 +#: hacks/config/flame.xml.h:16 +#: hacks/config/flow.xml.h:15 +#: hacks/config/forest.xml.h:8 +#: hacks/config/galaxy.xml.h:14 +#: hacks/config/grav.xml.h:11 +#: hacks/config/halo.xml.h:13 +#: hacks/config/hopalong.xml.h:25 +#: hacks/config/imsmap.xml.h:15 +#: hacks/config/interference.xml.h:19 +#: hacks/config/julia.xml.h:12 +#: hacks/config/laser.xml.h:12 +#: hacks/config/lightning.xml.h:8 +#: hacks/config/lisa.xml.h:12 +#: hacks/config/lissie.xml.h:13 +#: hacks/config/loop.xml.h:12 +#: hacks/config/metaballs.xml.h:16 +#: hacks/config/moire.xml.h:11 +#: hacks/config/moire2.xml.h:9 +#: hacks/config/mountain.xml.h:9 +#: hacks/config/nerverot.xml.h:23 +#: hacks/config/penrose.xml.h:10 +#: hacks/config/polyominoes.xml.h:12 +#: hacks/config/rd-bomb.xml.h:20 +#: hacks/config/rocks.xml.h:12 +#: hacks/config/rotor.xml.h:13 +#: hacks/config/shadebobs.xml.h:12 +#: hacks/config/sierpinski.xml.h:12 +#: hacks/config/slip.xml.h:12 +#: hacks/config/sphere.xml.h:8 +#: hacks/config/spiral.xml.h:12 +#: hacks/config/squiral.xml.h:18 +#: hacks/config/starfish.xml.h:14 +#: hacks/config/strange.xml.h:8 +#: hacks/config/swirl.xml.h:9 +#: hacks/config/thornbird.xml.h:13 +#: hacks/config/triangle.xml.h:8 +#: hacks/config/vines.xml.h:7 +#: hacks/config/worm.xml.h:9 +#: hacks/config/xearth.xml.h:28 +#: hacks/config/xfishtank.xml.h:11 msgid "Two" -msgstr "" +msgstr "Duas" #: hacks/config/anemone.xml.h:17 msgid "Wiggling tentacles. By Gabriel Finch." -msgstr "" +msgstr "Tentáculos Serpenteantes. Por Gabriel Finch." #: hacks/config/anemone.xml.h:18 msgid "Withdraw freqency" -msgstr "" +msgstr "Frequência de Recuo" #: hacks/config/anemotaxis.xml.h:1 msgid "Anemotaxis" -msgstr "" +msgstr "Anemotaxis" #: hacks/config/anemotaxis.xml.h:2 -msgid "" -"Anemotaxis demonstrates a search algorithm designed for locating a source of " -"odor in turbulent atmosphere. The searcher is able to sense the odor and " -"determine local instantaneous wind direction. The goal is to find the source " -"in the shortest mean time. Written by Eugene Balkovsky." -msgstr "" +msgid "Anemotaxis demonstrates a search algorithm designed for locating a source of odor in turbulent atmosphere. The searcher is able to sense the odor and determine local instantaneous wind direction. The goal is to find the source in the shortest mean time. Written by Eugene Balkovsky." +msgstr "O Anemotaxis demonstra um algoritmo de pesquisa elaborado para localizar a fonte de um odor numa atmosfera turbulenta. O pesquisador é capaz de perceber o odor e determinar a direção do vento no local naquele instante. O objetivo é encontrar a fonte no menor tempo médio. Escrito por Eugene Balkovsky." #: hacks/config/anemotaxis.xml.h:3 msgid "Distance" -msgstr "" +msgstr "Distância" -#: hacks/config/anemotaxis.xml.h:4 hacks/config/hyperball.xml.h:1 +#: hacks/config/anemotaxis.xml.h:4 +#: hacks/config/hyperball.xml.h:1 #: hacks/config/hypercube.xml.h:1 msgid "Far" -msgstr "" +msgstr "Longe" -#: hacks/config/anemotaxis.xml.h:8 hacks/config/hyperball.xml.h:7 +#: hacks/config/anemotaxis.xml.h:8 +#: hacks/config/hyperball.xml.h:7 #: hacks/config/hypercube.xml.h:6 msgid "Near" -msgstr "" +msgstr "Perto" #: hacks/config/anemotaxis.xml.h:9 msgid "Searchers" -msgstr "" +msgstr "Pesquisadores" #: hacks/config/anemotaxis.xml.h:11 msgid "Sources" -msgstr "" +msgstr "Fontes" #: hacks/config/ant.xml.h:1 -msgid "" -"A cellular automaton that is really a two-dimensional Turing machine: as the " -"heads (``ants'') walk along the screen, they change pixel values in their " -"path. Then, as they pass over changed pixels, their behavior is influenced. " -"Written by David Bagley." -msgstr "" +msgid "A cellular automaton that is really a two-dimensional Turing machine: as the heads (``ants'') walk along the screen, they change pixel values in their path. Then, as they pass over changed pixels, their behavior is influenced. Written by David Bagley." +msgstr "Um autômato celular que é verdadeiramente uma máquina de Turing bidimensional: conforme as cabeças (``formigas'') andam pela tela, elas modificam o valor do pixel pelo seu caminho. Então, conforme elas passam sobre os pixels modificados, o seu comportamento é influenciado. Escrito por David Bagley." #: hacks/config/ant.xml.h:2 msgid "Ant" -msgstr "" +msgstr "Formiga" #: hacks/config/ant.xml.h:3 msgid "Ant Size" -msgstr "" +msgstr "Tamanho da Formiga" #: hacks/config/ant.xml.h:4 msgid "Ants Count" -msgstr "" +msgstr "Quantidade de Formigas" #: hacks/config/ant.xml.h:5 msgid "Draw Eyes" -msgstr "" +msgstr "Desenhar Olhos" #: hacks/config/ant.xml.h:7 msgid "Four Sided Cells" -msgstr "" - -#: hacks/config/ant.xml.h:8 hacks/config/attraction.xml.h:13 -#: hacks/config/cloudlife.xml.h:7 hacks/config/cube21.xml.h:8 -#: hacks/config/cubenetic.xml.h:11 hacks/config/demon.xml.h:5 -#: hacks/config/discrete.xml.h:3 hacks/config/distort.xml.h:5 -#: hacks/config/fadeplot.xml.h:5 hacks/config/flag.xml.h:4 -#: hacks/config/flow.xml.h:4 hacks/config/fluidballs.xml.h:12 -#: hacks/config/fuzzyflakes.xml.h:10 hacks/config/gleidescope.xml.h:7 -#: hacks/config/halftone.xml.h:8 hacks/config/hopalong.xml.h:13 -#: hacks/config/interference.xml.h:11 hacks/config/julia.xml.h:5 -#: hacks/config/lissie.xml.h:4 hacks/config/loop.xml.h:2 -#: hacks/config/moire.xml.h:4 hacks/config/piecewise.xml.h:5 -#: hacks/config/rd-bomb.xml.h:11 hacks/config/rorschach.xml.h:5 -#: hacks/config/rubik.xml.h:4 hacks/config/sierpinski.xml.h:3 +msgstr "Células de Quatro Lados" + +#: hacks/config/ant.xml.h:8 +#: hacks/config/attraction.xml.h:13 +#: hacks/config/cloudlife.xml.h:7 +#: hacks/config/cube21.xml.h:8 +#: hacks/config/cubenetic.xml.h:11 +#: hacks/config/demon.xml.h:5 +#: hacks/config/discrete.xml.h:3 +#: hacks/config/distort.xml.h:5 +#: hacks/config/fadeplot.xml.h:5 +#: hacks/config/flag.xml.h:4 +#: hacks/config/flow.xml.h:4 +#: hacks/config/fluidballs.xml.h:12 +#: hacks/config/fuzzyflakes.xml.h:10 +#: hacks/config/gleidescope.xml.h:7 +#: hacks/config/halftone.xml.h:8 +#: hacks/config/hopalong.xml.h:13 +#: hacks/config/interference.xml.h:11 +#: hacks/config/julia.xml.h:5 +#: hacks/config/lissie.xml.h:4 +#: hacks/config/loop.xml.h:2 +#: hacks/config/moire.xml.h:4 +#: hacks/config/piecewise.xml.h:5 +#: hacks/config/rd-bomb.xml.h:11 +#: hacks/config/rorschach.xml.h:5 +#: hacks/config/rubik.xml.h:4 +#: hacks/config/sierpinski.xml.h:3 #: hacks/config/slip.xml.h:3 msgid "Large" -msgstr "" +msgstr "Grande" #: hacks/config/ant.xml.h:10 msgid "Nine Sided Cells" -msgstr "" +msgstr "Células de Nove Lados" #: hacks/config/ant.xml.h:12 msgid "Random Cell Shape" -msgstr "" +msgstr "Forma da Célula Aleatória" -#: hacks/config/ant.xml.h:13 hacks/config/speedmine.xml.h:11 +#: hacks/config/ant.xml.h:13 +#: hacks/config/speedmine.xml.h:11 msgid "Sharp Turns" -msgstr "" +msgstr "Curvas Acentuadas" #: hacks/config/ant.xml.h:14 msgid "Six Sided Cells" -msgstr "" - -#: hacks/config/ant.xml.h:16 hacks/config/attraction.xml.h:27 -#: hacks/config/cloudlife.xml.h:12 hacks/config/cube21.xml.h:17 -#: hacks/config/cubenetic.xml.h:23 hacks/config/demon.xml.h:9 -#: hacks/config/discrete.xml.h:8 hacks/config/distort.xml.h:12 -#: hacks/config/fadeplot.xml.h:9 hacks/config/flag.xml.h:8 -#: hacks/config/flow.xml.h:11 hacks/config/fluidballs.xml.h:19 -#: hacks/config/fuzzyflakes.xml.h:16 hacks/config/gleidescope.xml.h:12 -#: hacks/config/halftone.xml.h:14 hacks/config/hopalong.xml.h:22 -#: hacks/config/interference.xml.h:18 hacks/config/julia.xml.h:9 -#: hacks/config/lissie.xml.h:10 hacks/config/loop.xml.h:8 -#: hacks/config/metaballs.xml.h:14 hacks/config/moire.xml.h:9 -#: hacks/config/piecewise.xml.h:10 hacks/config/rd-bomb.xml.h:18 -#: hacks/config/rorschach.xml.h:8 hacks/config/rubik.xml.h:10 -#: hacks/config/sierpinski.xml.h:8 hacks/config/slip.xml.h:8 +msgstr "Células de Seis lados" + +#: hacks/config/ant.xml.h:16 +#: hacks/config/attraction.xml.h:27 +#: hacks/config/cloudlife.xml.h:12 +#: hacks/config/cube21.xml.h:17 +#: hacks/config/cubenetic.xml.h:23 +#: hacks/config/demon.xml.h:9 +#: hacks/config/discrete.xml.h:8 +#: hacks/config/distort.xml.h:12 +#: hacks/config/fadeplot.xml.h:9 +#: hacks/config/flag.xml.h:8 +#: hacks/config/flow.xml.h:11 +#: hacks/config/fluidballs.xml.h:19 +#: hacks/config/fuzzyflakes.xml.h:16 +#: hacks/config/gleidescope.xml.h:12 +#: hacks/config/halftone.xml.h:14 +#: hacks/config/hopalong.xml.h:22 +#: hacks/config/interference.xml.h:18 +#: hacks/config/julia.xml.h:9 +#: hacks/config/lissie.xml.h:10 +#: hacks/config/loop.xml.h:8 +#: hacks/config/metaballs.xml.h:14 +#: hacks/config/moire.xml.h:9 +#: hacks/config/piecewise.xml.h:10 +#: hacks/config/rd-bomb.xml.h:18 +#: hacks/config/rorschach.xml.h:8 +#: hacks/config/rubik.xml.h:10 +#: hacks/config/sierpinski.xml.h:8 +#: hacks/config/slip.xml.h:8 msgid "Small" -msgstr "" +msgstr "Pequeno" #: hacks/config/ant.xml.h:18 msgid "Three Sided Cells" -msgstr "" - -#: hacks/config/ant.xml.h:19 hacks/config/demon.xml.h:12 -#: hacks/config/discrete.xml.h:10 hacks/config/fadeplot.xml.h:11 -#: hacks/config/flag.xml.h:12 hacks/config/flow.xml.h:14 -#: hacks/config/lissie.xml.h:12 hacks/config/loop.xml.h:11 -#: hacks/config/rubik.xml.h:12 hacks/config/sierpinski.xml.h:11 +msgstr "Células de Três Lados" + +#: hacks/config/ant.xml.h:19 +#: hacks/config/demon.xml.h:12 +#: hacks/config/discrete.xml.h:10 +#: hacks/config/fadeplot.xml.h:11 +#: hacks/config/flag.xml.h:12 +#: hacks/config/flow.xml.h:14 +#: hacks/config/lissie.xml.h:12 +#: hacks/config/loop.xml.h:11 +#: hacks/config/rubik.xml.h:12 +#: hacks/config/sierpinski.xml.h:11 #: hacks/config/slip.xml.h:11 msgid "Timeout" -msgstr "" +msgstr "Tempo Limite" #: hacks/config/ant.xml.h:20 msgid "Truchet Lines" -msgstr "" +msgstr "Linhas de Truchet" #: hacks/config/ant.xml.h:21 msgid "Twelve Sided Cells" -msgstr "" +msgstr "Células de Doze Lados" #: hacks/config/antinspect.xml.h:1 msgid "AntInspect" -msgstr "" +msgstr "AntInspect" #: hacks/config/antinspect.xml.h:2 msgid "Draw Shadows" -msgstr "" +msgstr "Desenhar Sombras" #: hacks/config/antinspect.xml.h:3 -msgid "" -"Draws a trio of ants moving their spheres around a circle. Written by Blair " -"Tennessy." -msgstr "" - -#: hacks/config/antinspect.xml.h:5 hacks/config/antmaze.xml.h:4 -#: hacks/config/antspotlight.xml.h:4 hacks/config/atlantis.xml.h:11 -#: hacks/config/atunnel.xml.h:5 hacks/config/blocktube.xml.h:8 -#: hacks/config/boing.xml.h:8 hacks/config/boxed.xml.h:14 -#: hacks/config/bubble3d.xml.h:5 hacks/config/cage.xml.h:3 -#: hacks/config/carousel.xml.h:12 hacks/config/circuit.xml.h:9 -#: hacks/config/cube21.xml.h:13 hacks/config/cubenetic.xml.h:21 -#: hacks/config/cubestorm.xml.h:7 hacks/config/dangerball.xml.h:4 -#: hacks/config/endgame.xml.h:4 hacks/config/engine.xml.h:14 -#: hacks/config/extrusion.xml.h:10 hacks/config/flipflop.xml.h:4 -#: hacks/config/flipscreen3d.xml.h:5 hacks/config/fliptext.xml.h:12 -#: hacks/config/fluidballs.xml.h:17 hacks/config/flurry.xml.h:9 -#: hacks/config/flyingtoasters.xml.h:10 hacks/config/gears.xml.h:6 -#: hacks/config/gflux.xml.h:11 hacks/config/glblur.xml.h:13 -#: hacks/config/gleidescope.xml.h:10 hacks/config/glforestfire.xml.h:13 -#: hacks/config/glhanoi.xml.h:7 hacks/config/glknots.xml.h:16 -#: hacks/config/glmatrix.xml.h:17 hacks/config/glplanet.xml.h:7 -#: hacks/config/glslideshow.xml.h:19 hacks/config/glsnake.xml.h:10 -#: hacks/config/gltext.xml.h:14 hacks/config/hypertorus.xml.h:17 -#: hacks/config/jigglypuff.xml.h:15 hacks/config/juggler3d.xml.h:11 -#: hacks/config/klein.xml.h:6 hacks/config/lament.xml.h:5 -#: hacks/config/lavalite.xml.h:26 hacks/config/menger.xml.h:15 -#: hacks/config/mirrorblob.xml.h:17 hacks/config/moebius.xml.h:6 -#: hacks/config/molecule.xml.h:22 hacks/config/morph3d.xml.h:5 -#: hacks/config/noof.xml.h:4 hacks/config/pinion.xml.h:12 -#: hacks/config/pipes.xml.h:14 hacks/config/polyhedra.xml.h:110 -#: hacks/config/polytopes.xml.h:18 hacks/config/providence.xml.h:4 -#: hacks/config/pulsar.xml.h:14 hacks/config/queens.xml.h:3 -#: hacks/config/rubik.xml.h:6 hacks/config/sballs.xml.h:12 -#: hacks/config/sierpinski3d.xml.h:6 hacks/config/spheremonics.xml.h:18 -#: hacks/config/sproingies.xml.h:4 hacks/config/stairs.xml.h:2 -#: hacks/config/starwars.xml.h:11 hacks/config/superquadrics.xml.h:7 +msgid "Draws a trio of ants moving their spheres around a circle. Written by Blair Tennessy." +msgstr "Desenha um trio de formigas movimentando suas esferas em redor de um círculo. Escrito por Blair Tennessy." + +#: hacks/config/antinspect.xml.h:5 +#: hacks/config/antmaze.xml.h:4 +#: hacks/config/antspotlight.xml.h:4 +#: hacks/config/atlantis.xml.h:11 +#: hacks/config/atunnel.xml.h:5 +#: hacks/config/blocktube.xml.h:8 +#: hacks/config/boing.xml.h:8 +#: hacks/config/boxed.xml.h:14 +#: hacks/config/bubble3d.xml.h:5 +#: hacks/config/cage.xml.h:3 +#: hacks/config/carousel.xml.h:12 +#: hacks/config/circuit.xml.h:9 +#: hacks/config/cube21.xml.h:13 +#: hacks/config/cubenetic.xml.h:21 +#: hacks/config/cubestorm.xml.h:7 +#: hacks/config/dangerball.xml.h:4 +#: hacks/config/endgame.xml.h:4 +#: hacks/config/engine.xml.h:14 +#: hacks/config/extrusion.xml.h:10 +#: hacks/config/flipflop.xml.h:4 +#: hacks/config/flipscreen3d.xml.h:5 +#: hacks/config/fliptext.xml.h:12 +#: hacks/config/fluidballs.xml.h:17 +#: hacks/config/flurry.xml.h:9 +#: hacks/config/flyingtoasters.xml.h:10 +#: hacks/config/gears.xml.h:6 +#: hacks/config/gflux.xml.h:11 +#: hacks/config/glblur.xml.h:13 +#: hacks/config/gleidescope.xml.h:10 +#: hacks/config/glforestfire.xml.h:13 +#: hacks/config/glhanoi.xml.h:7 +#: hacks/config/glknots.xml.h:16 +#: hacks/config/glmatrix.xml.h:17 +#: hacks/config/glplanet.xml.h:7 +#: hacks/config/glslideshow.xml.h:19 +#: hacks/config/glsnake.xml.h:10 +#: hacks/config/gltext.xml.h:14 +#: hacks/config/hypertorus.xml.h:17 +#: hacks/config/jigglypuff.xml.h:15 +#: hacks/config/juggler3d.xml.h:11 +#: hacks/config/klein.xml.h:6 +#: hacks/config/lament.xml.h:5 +#: hacks/config/lavalite.xml.h:26 +#: hacks/config/menger.xml.h:15 +#: hacks/config/mirrorblob.xml.h:17 +#: hacks/config/moebius.xml.h:6 +#: hacks/config/molecule.xml.h:22 +#: hacks/config/morph3d.xml.h:5 +#: hacks/config/noof.xml.h:4 +#: hacks/config/pinion.xml.h:12 +#: hacks/config/pipes.xml.h:14 +#: hacks/config/polyhedra.xml.h:110 +#: hacks/config/polytopes.xml.h:18 +#: hacks/config/providence.xml.h:4 +#: hacks/config/pulsar.xml.h:14 +#: hacks/config/queens.xml.h:3 +#: hacks/config/rubik.xml.h:6 +#: hacks/config/sballs.xml.h:12 +#: hacks/config/sierpinski3d.xml.h:6 +#: hacks/config/spheremonics.xml.h:18 +#: hacks/config/sproingies.xml.h:4 +#: hacks/config/stairs.xml.h:2 +#: hacks/config/starwars.xml.h:11 +#: hacks/config/superquadrics.xml.h:7 #: hacks/config/timetunnel.xml.h:9 msgid "Show Frames-per-Second" -msgstr "" +msgstr "Exibir Quadros-por-Segundo" #: hacks/config/antmaze.xml.h:1 msgid "AntMaze" -msgstr "" +msgstr "AntMaze" #: hacks/config/antmaze.xml.h:2 -msgid "" -"Antmaze draws a few views of a few ants walking around in a simple maze. " -"Written by Blair Tennessy." -msgstr "" +msgid "Antmaze draws a few views of a few ants walking around in a simple maze. Written by Blair Tennessy." +msgstr "O Antmaze desenha umas vistas de algumas formigas andando por um labirinto simples. Escrito por Blair Tennessy." #: hacks/config/antspotlight.xml.h:1 msgid "AntSpotlight" -msgstr "" +msgstr "AntSpotlight" #: hacks/config/antspotlight.xml.h:2 -msgid "" -"Antspotlight draws an ant (with a headlight) who walks on top of an image of " -"your desktop or other image. Written by Blair Tennessy." -msgstr "" +msgid "Antspotlight draws an ant (with a headlight) who walks on top of an image of your desktop or other image. Written by Blair Tennessy." +msgstr "O Antspotlight desenha uma formiga (com uma lanterna) que anda sobre uma imagem, da sua área de trabalho ou outra. Escrito por Blair Tennessy." #: hacks/config/apollonian.xml.h:1 msgid "Apollonian" -msgstr "" +msgstr "Apollonius" #: hacks/config/apollonian.xml.h:2 msgid "Deep" -msgstr "" +msgstr "Profundo" #: hacks/config/apollonian.xml.h:3 msgid "Depth" -msgstr "" +msgstr "Profundidade" #: hacks/config/apollonian.xml.h:4 msgid "Draw Labels" -msgstr "" +msgstr "Desenhar Indicações" #: hacks/config/apollonian.xml.h:6 msgid "Include Alternate Geometries" -msgstr "" +msgstr "Incluir Geometrias Alternativas" #: hacks/config/apollonian.xml.h:9 -msgid "" -"Packs a large circle with smaller circles, demonstrating the Descartes " -"Circle Theorem. Written by Allan R. Wilks and David Bagley." +msgid "Packs a large circle with smaller circles, demonstrating the Descartes Circle Theorem. Written by Allan R. Wilks and David Bagley." msgstr "" #: hacks/config/apollonian.xml.h:10 msgid "Shallow" -msgstr "" +msgstr "Raso" #: hacks/config/apple2.xml.h:1 msgid "Apple ][" -msgstr "" +msgstr "Apple ][" #: hacks/config/apple2.xml.h:2 msgid "Basic Programming Mode" -msgstr "" +msgstr "Modo de Programação BASIC" -#: hacks/config/apple2.xml.h:3 hacks/config/halo.xml.h:8 +#: hacks/config/apple2.xml.h:3 +#: hacks/config/halo.xml.h:8 #: hacks/config/imsmap.xml.h:11 msgid "Random Mode" -msgstr "" +msgstr "Modo Aleatório" #: hacks/config/apple2.xml.h:4 -msgid "" -"Simulates an original Apple ][ Plus computer in all its 1979 glory. It also " -"reproduces the appearance of display on a color television set of the " -"period. In \"Text Mode\", it displays the output of a program, or the " -"contents of a file or URL, as configured on the \"Advanced\" tab of the main " -"Screensaver Preferences window. In \"Slideshow Mode\", it chooses a number " -"of images from the image source you configured into XScreenSaver and " -"displays them within the limitations of the Apple ][ display hardware. (Six " -"available colors in hi-res mode!) In \"Basic Programming Mode\", a simulated " -"user types in a BASIC program and runs it. By Trevor Blackwell." +msgid "Simulates an original Apple ][ Plus computer in all its 1979 glory. It also reproduces the appearance of display on a color television set of the period. In \"Text Mode\", it displays the output of a program, or the contents of a file or URL, as configured on the \"Advanced\" tab of the main Screensaver Preferences window. In \"Slideshow Mode\", it chooses a number of images from the image source you configured into XScreenSaver and displays them within the limitations of the Apple ][ display hardware. (Six available colors in hi-res mode!) In \"Basic Programming Mode\", a simulated user types in a BASIC program and runs it. By Trevor Blackwell." msgstr "" #: hacks/config/apple2.xml.h:5 msgid "Slideshow Mode" -msgstr "" +msgstr "Modo de Apresentação de Slides" #: hacks/config/apple2.xml.h:6 msgid "Text Mode" -msgstr "" - -#: hacks/config/apple2.xml.h:7 hacks/config/fliptext.xml.h:17 -#: hacks/config/fontglide.xml.h:15 hacks/config/noseguy.xml.h:7 -#: hacks/config/phosphor.xml.h:9 hacks/config/starwars.xml.h:17 +msgstr "Modo de Texto" + +#: hacks/config/apple2.xml.h:7 +#: hacks/config/fliptext.xml.h:17 +#: hacks/config/fontglide.xml.h:15 +#: hacks/config/noseguy.xml.h:7 +#: hacks/config/phosphor.xml.h:9 +#: hacks/config/starwars.xml.h:17 msgid "Text Program" -msgstr "" +msgstr "Programa de Texto" #: hacks/config/atlantis.xml.h:1 msgid "Agressive" -msgstr "" +msgstr "Agressivo" #: hacks/config/atlantis.xml.h:2 msgid "Atlantis" -msgstr "" +msgstr "Atlantis" #: hacks/config/atlantis.xml.h:3 msgid "Clear Water" -msgstr "" +msgstr "Água Límpida" #: hacks/config/atlantis.xml.h:5 msgid "Flat Background" -msgstr "" +msgstr "Fundo Sólido" #: hacks/config/atlantis.xml.h:6 msgid "Gradient Background" -msgstr "" +msgstr "Fundo em Gradiente" #: hacks/config/atlantis.xml.h:7 msgid "Number of Sharks" -msgstr "" +msgstr "Número de Tubarões" #: hacks/config/atlantis.xml.h:8 msgid "Shark Proximity" -msgstr "" +msgstr "Proximidade dos Tubarões" #: hacks/config/atlantis.xml.h:9 msgid "Shark Speed" -msgstr "" +msgstr "Velocidade dos Tubarões" #: hacks/config/atlantis.xml.h:10 msgid "Shimmering Water" -msgstr "" +msgstr "Água Trêmula" #: hacks/config/atlantis.xml.h:12 msgid "Shy" -msgstr "" - -#: hacks/config/atlantis.xml.h:14 hacks/config/cage.xml.h:5 -#: hacks/config/extrusion.xml.h:12 hacks/config/gears.xml.h:8 -#: hacks/config/glplanet.xml.h:9 hacks/config/glsnake.xml.h:13 -#: hacks/config/gltext.xml.h:16 hacks/config/menger.xml.h:17 -#: hacks/config/mismunch.xml.h:11 hacks/config/molecule.xml.h:24 -#: hacks/config/munch.xml.h:8 hacks/config/providence.xml.h:6 -#: hacks/config/sierpinski3d.xml.h:9 hacks/config/speedmine.xml.h:14 -#: hacks/config/spheremonics.xml.h:21 hacks/config/sproingies.xml.h:7 -#: hacks/config/stairs.xml.h:4 hacks/config/stonerview.xml.h:2 -#: hacks/config/superquadrics.xml.h:9 hacks/config/webcollage.xml.h:8 +msgstr "Acanhado" + +#: hacks/config/atlantis.xml.h:14 +#: hacks/config/cage.xml.h:5 +#: hacks/config/extrusion.xml.h:12 +#: hacks/config/gears.xml.h:8 +#: hacks/config/glplanet.xml.h:9 +#: hacks/config/glsnake.xml.h:13 +#: hacks/config/gltext.xml.h:16 +#: hacks/config/menger.xml.h:17 +#: hacks/config/mismunch.xml.h:11 +#: hacks/config/molecule.xml.h:24 +#: hacks/config/munch.xml.h:8 +#: hacks/config/providence.xml.h:6 +#: hacks/config/sierpinski3d.xml.h:9 +#: hacks/config/speedmine.xml.h:14 +#: hacks/config/spheremonics.xml.h:21 +#: hacks/config/sproingies.xml.h:7 +#: hacks/config/stairs.xml.h:4 +#: hacks/config/stonerview.xml.h:2 +#: hacks/config/superquadrics.xml.h:9 +#: hacks/config/webcollage.xml.h:8 msgid "Solid" -msgstr "" +msgstr "Sólido" #: hacks/config/atlantis.xml.h:15 -msgid "" -"This is xfishtank writ large: a GL animation of a number of sharks, " -"dolphins, and whales. The swimming motions are great. Originally written by " -"Mark Kilgard." +msgid "This is xfishtank writ large: a GL animation of a number of sharks, dolphins, and whales. The swimming motions are great. Originally written by Mark Kilgard." msgstr "" #: hacks/config/atlantis.xml.h:16 msgid "Whale Speed" -msgstr "" - -#: hacks/config/atlantis.xml.h:17 hacks/config/atunnel.xml.h:10 -#: hacks/config/blinkbox.xml.h:10 hacks/config/blocktube.xml.h:13 -#: hacks/config/boing.xml.h:15 hacks/config/boxed.xml.h:17 -#: hacks/config/cage.xml.h:9 hacks/config/crackberg.xml.h:23 -#: hacks/config/cube21.xml.h:28 hacks/config/cubestorm.xml.h:14 -#: hacks/config/dangerball.xml.h:11 hacks/config/extrusion.xml.h:19 -#: hacks/config/flipflop.xml.h:8 hacks/config/flyingtoasters.xml.h:14 -#: hacks/config/gears.xml.h:11 hacks/config/glforestfire.xml.h:20 -#: hacks/config/glhanoi.xml.h:10 hacks/config/glknots.xml.h:23 -#: hacks/config/glplanet.xml.h:15 hacks/config/glsnake.xml.h:15 -#: hacks/config/gltext.xml.h:21 hacks/config/jigglypuff.xml.h:25 -#: hacks/config/juggler3d.xml.h:13 hacks/config/lament.xml.h:9 -#: hacks/config/lavalite.xml.h:32 hacks/config/menger.xml.h:21 -#: hacks/config/mirrorblob.xml.h:23 hacks/config/moebius.xml.h:11 -#: hacks/config/molecule.xml.h:27 hacks/config/pinion.xml.h:15 -#: hacks/config/polyhedra.xml.h:166 hacks/config/providence.xml.h:9 -#: hacks/config/pulsar.xml.h:20 hacks/config/queens.xml.h:7 -#: hacks/config/sballs.xml.h:18 hacks/config/sierpinski3d.xml.h:12 -#: hacks/config/speedmine.xml.h:18 hacks/config/spheremonics.xml.h:26 -#: hacks/config/sproingies.xml.h:10 hacks/config/stairs.xml.h:7 -#: hacks/config/stonerview.xml.h:4 hacks/config/superquadrics.xml.h:12 +msgstr "Velocidade das Baleias" + +#: hacks/config/atlantis.xml.h:17 +#: hacks/config/atunnel.xml.h:10 +#: hacks/config/blinkbox.xml.h:10 +#: hacks/config/blocktube.xml.h:13 +#: hacks/config/boing.xml.h:15 +#: hacks/config/boxed.xml.h:17 +#: hacks/config/cage.xml.h:9 +#: hacks/config/crackberg.xml.h:23 +#: hacks/config/cube21.xml.h:28 +#: hacks/config/cubestorm.xml.h:14 +#: hacks/config/dangerball.xml.h:11 +#: hacks/config/extrusion.xml.h:19 +#: hacks/config/flipflop.xml.h:8 +#: hacks/config/flyingtoasters.xml.h:14 +#: hacks/config/gears.xml.h:11 +#: hacks/config/glforestfire.xml.h:20 +#: hacks/config/glhanoi.xml.h:10 +#: hacks/config/glknots.xml.h:23 +#: hacks/config/glplanet.xml.h:15 +#: hacks/config/glsnake.xml.h:15 +#: hacks/config/gltext.xml.h:21 +#: hacks/config/jigglypuff.xml.h:25 +#: hacks/config/juggler3d.xml.h:13 +#: hacks/config/lament.xml.h:9 +#: hacks/config/lavalite.xml.h:32 +#: hacks/config/menger.xml.h:21 +#: hacks/config/mirrorblob.xml.h:23 +#: hacks/config/moebius.xml.h:11 +#: hacks/config/molecule.xml.h:27 +#: hacks/config/pinion.xml.h:15 +#: hacks/config/polyhedra.xml.h:166 +#: hacks/config/providence.xml.h:9 +#: hacks/config/pulsar.xml.h:20 +#: hacks/config/queens.xml.h:7 +#: hacks/config/sballs.xml.h:18 +#: hacks/config/sierpinski3d.xml.h:12 +#: hacks/config/speedmine.xml.h:18 +#: hacks/config/spheremonics.xml.h:26 +#: hacks/config/sproingies.xml.h:10 +#: hacks/config/stairs.xml.h:7 +#: hacks/config/stonerview.xml.h:4 +#: hacks/config/superquadrics.xml.h:12 #: hacks/config/tangram.xml.h:8 msgid "Wireframe" -msgstr "" +msgstr "Estrutura de Arames" #: hacks/config/attraction.xml.h:1 msgid "Attraction" -msgstr "" +msgstr "Atração" #: hacks/config/attraction.xml.h:2 msgid "Ball Count" -msgstr "" +msgstr "Quantidade de Bolas" #: hacks/config/attraction.xml.h:3 msgid "Ball Mass" -msgstr "" +msgstr "Massa das Bolas" -#: hacks/config/attraction.xml.h:4 hacks/config/fluidballs.xml.h:3 +#: hacks/config/attraction.xml.h:4 +#: hacks/config/fluidballs.xml.h:3 msgid "Balls" -msgstr "" +msgstr "Bolas" #: hacks/config/attraction.xml.h:5 msgid "Bounce Off Walls" msgstr "" -#: hacks/config/attraction.xml.h:6 hacks/config/hopalong.xml.h:1 -#: hacks/config/interference.xml.h:5 hacks/config/qix.xml.h:2 +#: hacks/config/attraction.xml.h:6 +#: hacks/config/hopalong.xml.h:1 +#: hacks/config/interference.xml.h:5 +#: hacks/config/qix.xml.h:2 #: hacks/config/wander.xml.h:3 msgid "Color Contrast" msgstr "" #: hacks/config/attraction.xml.h:7 msgid "Environmental Viscosity" -msgstr "" +msgstr "Viscosidade do ambiente" #: hacks/config/attraction.xml.h:9 msgid "Filled Splines" msgstr "" -#: hacks/config/attraction.xml.h:10 hacks/config/carousel.xml.h:7 -#: hacks/config/ccurve.xml.h:9 hacks/config/cloudlife.xml.h:5 -#: hacks/config/cubenetic.xml.h:10 hacks/config/euler2d.xml.h:5 -#: hacks/config/flame.xml.h:9 hacks/config/fliptext.xml.h:9 -#: hacks/config/glslideshow.xml.h:13 hacks/config/goop.xml.h:6 -#: hacks/config/halftone.xml.h:7 hacks/config/hopalong.xml.h:10 -#: hacks/config/hyperball.xml.h:3 hacks/config/hypercube.xml.h:3 -#: hacks/config/interference.xml.h:8 hacks/config/jigglypuff.xml.h:8 -#: hacks/config/kumppa.xml.h:4 hacks/config/lavalite.xml.h:12 -#: hacks/config/nerverot.xml.h:11 hacks/config/petri.xml.h:8 -#: hacks/config/pyro.xml.h:5 hacks/config/qix.xml.h:10 -#: hacks/config/speedmine.xml.h:5 hacks/config/spheremonics.xml.h:6 -#: hacks/config/spiral.xml.h:4 hacks/config/squiral.xml.h:6 -#: hacks/config/superquadrics.xml.h:5 hacks/config/t3d.xml.h:7 -#: hacks/config/twang.xml.h:5 hacks/config/wander.xml.h:8 +#: hacks/config/attraction.xml.h:10 +#: hacks/config/carousel.xml.h:7 +#: hacks/config/ccurve.xml.h:9 +#: hacks/config/cloudlife.xml.h:5 +#: hacks/config/cubenetic.xml.h:10 +#: hacks/config/euler2d.xml.h:5 +#: hacks/config/flame.xml.h:9 +#: hacks/config/fliptext.xml.h:9 +#: hacks/config/glslideshow.xml.h:13 +#: hacks/config/goop.xml.h:6 +#: hacks/config/halftone.xml.h:7 +#: hacks/config/hopalong.xml.h:10 +#: hacks/config/hyperball.xml.h:3 +#: hacks/config/hypercube.xml.h:3 +#: hacks/config/interference.xml.h:8 +#: hacks/config/jigglypuff.xml.h:8 +#: hacks/config/kumppa.xml.h:4 +#: hacks/config/lavalite.xml.h:12 +#: hacks/config/nerverot.xml.h:11 +#: hacks/config/petri.xml.h:8 +#: hacks/config/pyro.xml.h:5 +#: hacks/config/qix.xml.h:10 +#: hacks/config/speedmine.xml.h:5 +#: hacks/config/spheremonics.xml.h:6 +#: hacks/config/spiral.xml.h:4 +#: hacks/config/squiral.xml.h:6 +#: hacks/config/superquadrics.xml.h:5 +#: hacks/config/t3d.xml.h:7 +#: hacks/config/twang.xml.h:5 +#: hacks/config/wander.xml.h:8 #: hacks/config/xmountains.xml.h:17 msgid "High" -msgstr "" +msgstr "Alta" #: hacks/config/attraction.xml.h:11 msgid "Ignore Screen Edges" @@ -1821,62 +2375,86 @@ msgid "Inward" msgstr "" #: hacks/config/attraction.xml.h:14 -msgid "" -"Like qix, this uses a simple simple motion model to generate many different " -"display modes. The control points attract each other up to a certain " -"distance, and then begin to repel each other. The attraction/repulsion is " -"proportional to the distance between any two particles, similar to the " -"strong and weak nuclear forces. One of the most interesting ways to watch " -"this hack is simply as bouncing balls, because their motions and " -"interactions with each other are so odd. Sometimes two balls will get into a " -"tight orbit around each other, to be interrupted later by a third, or by the " -"edge of the screen. It looks quite chaotic. Written by Jamie Zawinski, based " -"on Lisp code by John Pezaris." -msgstr "" - -#: hacks/config/attraction.xml.h:15 hacks/config/deluxe.xml.h:5 -#: hacks/config/lmorph.xml.h:7 hacks/config/pedal.xml.h:5 -#: hacks/config/starfish.xml.h:4 hacks/config/whirlygig.xml.h:10 -msgid "Lines" +msgid "Like qix, this uses a simple simple motion model to generate many different display modes. The control points attract each other up to a certain distance, and then begin to repel each other. The attraction/repulsion is proportional to the distance between any two particles, similar to the strong and weak nuclear forces. One of the most interesting ways to watch this hack is simply as bouncing balls, because their motions and interactions with each other are so odd. Sometimes two balls will get into a tight orbit around each other, to be interrupted later by a third, or by the edge of the screen. It looks quite chaotic. Written by Jamie Zawinski, based on Lisp code by John Pezaris." msgstr "" -#: hacks/config/attraction.xml.h:16 hacks/config/blocktube.xml.h:5 -#: hacks/config/braid.xml.h:6 hacks/config/celtic.xml.h:4 -#: hacks/config/crackberg.xml.h:13 hacks/config/cube21.xml.h:9 -#: hacks/config/cynosure.xml.h:5 hacks/config/drift.xml.h:8 -#: hacks/config/eruption.xml.h:11 hacks/config/euler2d.xml.h:6 -#: hacks/config/fiberlamp.xml.h:5 hacks/config/fireflies.xml.h:21 -#: hacks/config/flow.xml.h:6 hacks/config/fontglide.xml.h:8 -#: hacks/config/galaxy.xml.h:5 hacks/config/juggle.xml.h:4 -#: hacks/config/klein.xml.h:4 hacks/config/laser.xml.h:5 -#: hacks/config/menger.xml.h:4 hacks/config/metaballs.xml.h:5 -#: hacks/config/mismunch.xml.h:3 hacks/config/munch.xml.h:4 -#: hacks/config/nerverot.xml.h:13 hacks/config/petri.xml.h:9 -#: hacks/config/polyominoes.xml.h:4 hacks/config/rotor.xml.h:5 -#: hacks/config/shadebobs.xml.h:4 hacks/config/sierpinski3d.xml.h:3 -#: hacks/config/spheremonics.xml.h:7 hacks/config/substrate.xml.h:11 -#: hacks/config/timetunnel.xml.h:6 hacks/config/wander.xml.h:10 +#: hacks/config/attraction.xml.h:15 +#: hacks/config/deluxe.xml.h:5 +#: hacks/config/lmorph.xml.h:7 +#: hacks/config/pedal.xml.h:5 +#: hacks/config/starfish.xml.h:4 +#: hacks/config/whirlygig.xml.h:10 +msgid "Lines" +msgstr "Linhas" + +#: hacks/config/attraction.xml.h:16 +#: hacks/config/blocktube.xml.h:5 +#: hacks/config/braid.xml.h:6 +#: hacks/config/celtic.xml.h:4 +#: hacks/config/crackberg.xml.h:13 +#: hacks/config/cube21.xml.h:9 +#: hacks/config/cynosure.xml.h:5 +#: hacks/config/drift.xml.h:8 +#: hacks/config/eruption.xml.h:11 +#: hacks/config/euler2d.xml.h:6 +#: hacks/config/fiberlamp.xml.h:5 +#: hacks/config/fireflies.xml.h:21 +#: hacks/config/flow.xml.h:6 +#: hacks/config/fontglide.xml.h:8 +#: hacks/config/galaxy.xml.h:5 +#: hacks/config/juggle.xml.h:4 +#: hacks/config/klein.xml.h:4 +#: hacks/config/laser.xml.h:5 +#: hacks/config/menger.xml.h:4 +#: hacks/config/metaballs.xml.h:5 +#: hacks/config/mismunch.xml.h:3 +#: hacks/config/munch.xml.h:4 +#: hacks/config/nerverot.xml.h:13 +#: hacks/config/petri.xml.h:9 +#: hacks/config/polyominoes.xml.h:4 +#: hacks/config/rotor.xml.h:5 +#: hacks/config/shadebobs.xml.h:4 +#: hacks/config/sierpinski3d.xml.h:3 +#: hacks/config/spheremonics.xml.h:7 +#: hacks/config/substrate.xml.h:11 +#: hacks/config/timetunnel.xml.h:6 +#: hacks/config/wander.xml.h:10 #: hacks/config/whirlwindwarp.xml.h:3 msgid "Long" -msgstr "" - -#: hacks/config/attraction.xml.h:17 hacks/config/carousel.xml.h:9 -#: hacks/config/ccurve.xml.h:10 hacks/config/cloudlife.xml.h:8 -#: hacks/config/cubenetic.xml.h:12 hacks/config/euler2d.xml.h:7 -#: hacks/config/flame.xml.h:10 hacks/config/fliptext.xml.h:10 -#: hacks/config/glslideshow.xml.h:16 hacks/config/goop.xml.h:7 -#: hacks/config/halftone.xml.h:9 hacks/config/hopalong.xml.h:14 -#: hacks/config/hyperball.xml.h:6 hacks/config/hypercube.xml.h:5 -#: hacks/config/interference.xml.h:12 hacks/config/jigglypuff.xml.h:11 -#: hacks/config/kumppa.xml.h:6 hacks/config/lavalite.xml.h:14 -#: hacks/config/nerverot.xml.h:14 hacks/config/petri.xml.h:10 -#: hacks/config/pyro.xml.h:7 hacks/config/qix.xml.h:13 -#: hacks/config/speedmine.xml.h:6 hacks/config/spheremonics.xml.h:8 -#: hacks/config/spiral.xml.h:5 hacks/config/squiral.xml.h:8 -#: hacks/config/superquadrics.xml.h:6 hacks/config/t3d.xml.h:8 -#: hacks/config/twang.xml.h:7 hacks/config/wander.xml.h:11 +msgstr "Comprido" + +#: hacks/config/attraction.xml.h:17 +#: hacks/config/carousel.xml.h:9 +#: hacks/config/ccurve.xml.h:10 +#: hacks/config/cloudlife.xml.h:8 +#: hacks/config/cubenetic.xml.h:12 +#: hacks/config/euler2d.xml.h:7 +#: hacks/config/flame.xml.h:10 +#: hacks/config/fliptext.xml.h:10 +#: hacks/config/glslideshow.xml.h:16 +#: hacks/config/goop.xml.h:7 +#: hacks/config/halftone.xml.h:9 +#: hacks/config/hopalong.xml.h:14 +#: hacks/config/hyperball.xml.h:6 +#: hacks/config/hypercube.xml.h:5 +#: hacks/config/interference.xml.h:12 +#: hacks/config/jigglypuff.xml.h:11 +#: hacks/config/kumppa.xml.h:6 +#: hacks/config/lavalite.xml.h:14 +#: hacks/config/nerverot.xml.h:14 +#: hacks/config/petri.xml.h:10 +#: hacks/config/pyro.xml.h:7 +#: hacks/config/qix.xml.h:13 +#: hacks/config/speedmine.xml.h:6 +#: hacks/config/spheremonics.xml.h:8 +#: hacks/config/spiral.xml.h:5 +#: hacks/config/squiral.xml.h:8 +#: hacks/config/superquadrics.xml.h:6 +#: hacks/config/t3d.xml.h:8 +#: hacks/config/twang.xml.h:7 +#: hacks/config/wander.xml.h:11 msgid "Low" -msgstr "" +msgstr "Baixa" #: hacks/config/attraction.xml.h:20 msgid "Orbital Mode" @@ -1890,8 +2468,10 @@ msgstr "" msgid "Polygons" msgstr "" -#: hacks/config/attraction.xml.h:23 hacks/config/fuzzyflakes.xml.h:13 -#: hacks/config/spotlight.xml.h:3 hacks/config/xplanet.xml.h:55 +#: hacks/config/attraction.xml.h:23 +#: hacks/config/fuzzyflakes.xml.h:13 +#: hacks/config/spotlight.xml.h:3 +#: hacks/config/xplanet.xml.h:55 msgid "Radius" msgstr "" @@ -1899,34 +2479,52 @@ msgstr "" msgid "Repulsion Threshold" msgstr "" -#: hacks/config/attraction.xml.h:25 hacks/config/blocktube.xml.h:7 -#: hacks/config/braid.xml.h:10 hacks/config/celtic.xml.h:7 -#: hacks/config/crackberg.xml.h:17 hacks/config/cube21.xml.h:12 -#: hacks/config/cynosure.xml.h:8 hacks/config/drift.xml.h:11 -#: hacks/config/eruption.xml.h:18 hacks/config/euler2d.xml.h:12 -#: hacks/config/fiberlamp.xml.h:7 hacks/config/fireflies.xml.h:34 -#: hacks/config/flow.xml.h:9 hacks/config/galaxy.xml.h:9 -#: hacks/config/juggle.xml.h:7 hacks/config/klein.xml.h:5 -#: hacks/config/laser.xml.h:9 hacks/config/menger.xml.h:14 -#: hacks/config/metaballs.xml.h:12 hacks/config/mismunch.xml.h:8 -#: hacks/config/munch.xml.h:6 hacks/config/nerverot.xml.h:19 -#: hacks/config/petri.xml.h:22 hacks/config/polyominoes.xml.h:9 -#: hacks/config/rotor.xml.h:9 hacks/config/shadebobs.xml.h:8 -#: hacks/config/sierpinski3d.xml.h:5 hacks/config/spheremonics.xml.h:17 -#: hacks/config/substrate.xml.h:14 hacks/config/timetunnel.xml.h:8 -#: hacks/config/wander.xml.h:12 hacks/config/whirlwindwarp.xml.h:6 +#: hacks/config/attraction.xml.h:25 +#: hacks/config/blocktube.xml.h:7 +#: hacks/config/braid.xml.h:10 +#: hacks/config/celtic.xml.h:7 +#: hacks/config/crackberg.xml.h:17 +#: hacks/config/cube21.xml.h:12 +#: hacks/config/cynosure.xml.h:8 +#: hacks/config/drift.xml.h:11 +#: hacks/config/eruption.xml.h:18 +#: hacks/config/euler2d.xml.h:12 +#: hacks/config/fiberlamp.xml.h:7 +#: hacks/config/fireflies.xml.h:34 +#: hacks/config/flow.xml.h:9 +#: hacks/config/galaxy.xml.h:9 +#: hacks/config/juggle.xml.h:7 +#: hacks/config/klein.xml.h:5 +#: hacks/config/laser.xml.h:9 +#: hacks/config/menger.xml.h:14 +#: hacks/config/metaballs.xml.h:12 +#: hacks/config/mismunch.xml.h:8 +#: hacks/config/munch.xml.h:6 +#: hacks/config/nerverot.xml.h:19 +#: hacks/config/petri.xml.h:22 +#: hacks/config/polyominoes.xml.h:9 +#: hacks/config/rotor.xml.h:9 +#: hacks/config/shadebobs.xml.h:8 +#: hacks/config/sierpinski3d.xml.h:5 +#: hacks/config/spheremonics.xml.h:17 +#: hacks/config/substrate.xml.h:14 +#: hacks/config/timetunnel.xml.h:8 +#: hacks/config/wander.xml.h:12 +#: hacks/config/whirlwindwarp.xml.h:6 msgid "Short" -msgstr "" +msgstr "Curto" #: hacks/config/attraction.xml.h:29 msgid "Splines" msgstr "" -#: hacks/config/attraction.xml.h:30 hacks/config/fireflies.xml.h:42 +#: hacks/config/attraction.xml.h:30 +#: hacks/config/fireflies.xml.h:42 msgid "Tails" -msgstr "" +msgstr "Caudas" -#: hacks/config/attraction.xml.h:31 hacks/config/euler2d.xml.h:16 +#: hacks/config/attraction.xml.h:31 +#: hacks/config/euler2d.xml.h:16 #: hacks/config/juggle.xml.h:10 msgid "Trail Length" msgstr "" @@ -1936,20 +2534,21 @@ msgid "Atunnel" msgstr "" #: hacks/config/atunnel.xml.h:2 -msgid "" -"Draws an animation of a textured tunnel in GL. Requires OpenGL, and a " -"machine with fast hardware support for texture maps. Written by Eric " -"Lassauge and Roman Podobedov." +msgid "Draws an animation of a textured tunnel in GL. Requires OpenGL, and a machine with fast hardware support for texture maps. Written by Eric Lassauge and Roman Podobedov." msgstr "" -#: hacks/config/atunnel.xml.h:4 hacks/config/distort.xml.h:9 -#: hacks/config/glforestfire.xml.h:10 hacks/config/lament.xml.h:4 +#: hacks/config/atunnel.xml.h:4 +#: hacks/config/distort.xml.h:9 +#: hacks/config/glforestfire.xml.h:10 +#: hacks/config/lament.xml.h:4 #: hacks/config/sballs.xml.h:6 msgid "Normal" msgstr "" -#: hacks/config/atunnel.xml.h:8 hacks/config/cube21.xml.h:24 -#: hacks/config/glforestfire.xml.h:18 hacks/config/lament.xml.h:8 +#: hacks/config/atunnel.xml.h:8 +#: hacks/config/cube21.xml.h:24 +#: hacks/config/glforestfire.xml.h:18 +#: hacks/config/lament.xml.h:8 #: hacks/config/sballs.xml.h:17 msgid "Untextured" msgstr "" @@ -1960,24 +2559,22 @@ msgstr "" #: hacks/config/barcode.xml.h:1 msgid "Barcode" -msgstr "" +msgstr "Código de Barras" #: hacks/config/barcode.xml.h:2 msgid "Barcode Clock (24 Hour)" -msgstr "" +msgstr "Relógio de Código de Barras (24 Horas)" #: hacks/config/barcode.xml.h:3 msgid "Barcode Clock (AM/PM)" -msgstr "" +msgstr "Relógio de Código de Barras (AM/PM)" #: hacks/config/barcode.xml.h:5 msgid "Scrolling Barcodes" -msgstr "" +msgstr "Passagem de Código de Barras" #: hacks/config/barcode.xml.h:8 -msgid "" -"This draws a random sequence of colorful barcodes scrolling across your " -"screen. CONSUME! By Dan Bornstein." +msgid "This draws a random sequence of colorful barcodes scrolling across your screen. CONSUME! By Dan Bornstein." msgstr "" #: hacks/config/blaster.xml.h:1 @@ -1985,13 +2582,11 @@ msgid "Blaster" msgstr "" #: hacks/config/blaster.xml.h:2 -msgid "" -"Draws a simulation of flying space-combat robots (cleverly disguised as " -"colored circles) doing battle in front of a moving star field. Written by " -"Jonathan Lin." +msgid "Draws a simulation of flying space-combat robots (cleverly disguised as colored circles) doing battle in front of a moving star field. Written by Jonathan Lin." msgstr "" -#: hacks/config/blaster.xml.h:5 hacks/config/penetrate.xml.h:4 +#: hacks/config/blaster.xml.h:5 +#: hacks/config/penetrate.xml.h:4 msgid "Lasers" msgstr "" @@ -1999,7 +2594,8 @@ msgstr "" msgid "Robots" msgstr "" -#: hacks/config/blaster.xml.h:10 hacks/config/glplanet.xml.h:11 +#: hacks/config/blaster.xml.h:10 +#: hacks/config/glplanet.xml.h:11 msgid "Stars" msgstr "" @@ -2015,7 +2611,8 @@ msgstr "" msgid "Dissolve" msgstr "" -#: hacks/config/blinkbox.xml.h:4 hacks/config/phosphor.xml.h:3 +#: hacks/config/blinkbox.xml.h:4 +#: hacks/config/phosphor.xml.h:3 msgid "Fade" msgstr "" @@ -2024,9 +2621,7 @@ msgid "Motion Blur" msgstr "" #: hacks/config/blinkbox.xml.h:7 -msgid "" -"Shows a ball contained inside of a bounding box. Colored blocks blink in " -"when the ball hits the edges. Written by Jeremy English." +msgid "Shows a ball contained inside of a bounding box. Colored blocks blink in when the ball hits the edges. Written by Jeremy English." msgstr "" #: hacks/config/blitspin.xml.h:1 @@ -2050,23 +2645,15 @@ msgid "Grab Screen" msgstr "" #: hacks/config/blitspin.xml.h:8 -msgid "" -"The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by using " -"logical operations: the bitmap is divided into quadrants, and the quadrants " -"are shifted clockwise. Then the same thing is done again with progressively " -"smaller quadrants, except that all sub-quadrants of a given size are rotated " -"in parallel. Written by Jamie Zawinski based on some cool SmallTalk code " -"seen in in Byte Magazine in 1981. As you watch it, the image appears to " -"dissolve into static and then reconstitute itself, but rotated. You can " -"provide the image to use, as an XBM or XPM file, or tell it to grab a screen " -"image and rotate that." +msgid "The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by using logical operations: the bitmap is divided into quadrants, and the quadrants are shifted clockwise. Then the same thing is done again with progressively smaller quadrants, except that all sub-quadrants of a given size are rotated in parallel. Written by Jamie Zawinski based on some cool SmallTalk code seen in in Byte Magazine in 1981. As you watch it, the image appears to dissolve into static and then reconstitute itself, but rotated. You can provide the image to use, as an XBM or XPM file, or tell it to grab a screen image and rotate that." msgstr "" #: hacks/config/blocktube.xml.h:1 msgid "BlockTube" msgstr "" -#: hacks/config/blocktube.xml.h:2 hacks/config/timetunnel.xml.h:3 +#: hacks/config/blocktube.xml.h:2 +#: hacks/config/timetunnel.xml.h:3 msgid "Color Change Time" msgstr "" @@ -2083,21 +2670,22 @@ msgid "Solid Blocks" msgstr "" #: hacks/config/blocktube.xml.h:12 -msgid "" -"This hack draws a swirling, falling tunnel of reflective slabs. They fade " -"from hue to hue. Written by Lars R. Damerow." +msgid "This hack draws a swirling, falling tunnel of reflective slabs. They fade from hue to hue. Written by Lars R. Damerow." msgstr "" #: hacks/config/boing.xml.h:1 msgid "Boing" msgstr "" -#: hacks/config/boing.xml.h:3 hacks/config/boxed.xml.h:8 -#: hacks/config/fireflies.xml.h:17 hacks/config/pinion.xml.h:7 +#: hacks/config/boing.xml.h:3 +#: hacks/config/boxed.xml.h:8 +#: hacks/config/fireflies.xml.h:17 +#: hacks/config/pinion.xml.h:7 msgid "Huge" msgstr "" -#: hacks/config/boing.xml.h:4 hacks/config/crackberg.xml.h:12 +#: hacks/config/boing.xml.h:4 +#: hacks/config/crackberg.xml.h:12 msgid "Lighting" msgstr "" @@ -2113,12 +2701,18 @@ msgstr "" msgid "Scanlines" msgstr "" -#: hacks/config/boing.xml.h:9 hacks/config/galaxy.xml.h:10 -#: hacks/config/lisa.xml.h:7 hacks/config/lissie.xml.h:8 -#: hacks/config/loop.xml.h:6 hacks/config/penrose.xml.h:7 -#: hacks/config/pong.xml.h:3 hacks/config/rotor.xml.h:10 -#: hacks/config/rubik.xml.h:8 hacks/config/sproingies.xml.h:5 -#: hacks/config/wander.xml.h:13 hacks/config/worm.xml.h:6 +#: hacks/config/boing.xml.h:9 +#: hacks/config/galaxy.xml.h:10 +#: hacks/config/lisa.xml.h:7 +#: hacks/config/lissie.xml.h:8 +#: hacks/config/loop.xml.h:6 +#: hacks/config/penrose.xml.h:7 +#: hacks/config/pong.xml.h:3 +#: hacks/config/rotor.xml.h:10 +#: hacks/config/rubik.xml.h:8 +#: hacks/config/sproingies.xml.h:5 +#: hacks/config/wander.xml.h:13 +#: hacks/config/worm.xml.h:6 msgid "Size" msgstr "" @@ -2127,16 +2721,13 @@ msgid "Smoothing" msgstr "" #: hacks/config/boing.xml.h:13 -msgid "" -"This bouncing ball is a clone of the first graphics demo for the Amiga 1000, " -"which was written by Dale Luck and RJ Mical during a break at the 1984 " -"Consumer Electronics Show (or so the legend goes.) This looks like the " -"original Amiga demo if you turn off \"smoothing\" and \"lighting\" and turn " -"on \"scanlines\". Written by Jamie Zawinski." +msgid "This bouncing ball is a clone of the first graphics demo for the Amiga 1000, which was written by Dale Luck and RJ Mical during a break at the 1984 Consumer Electronics Show (or so the legend goes.) This looks like the original Amiga demo if you turn off \"smoothing\" and \"lighting\" and turn on \"scanlines\". Written by Jamie Zawinski." msgstr "" -#: hacks/config/boing.xml.h:14 hacks/config/boxed.xml.h:16 -#: hacks/config/fireflies.xml.h:43 hacks/config/pinion.xml.h:14 +#: hacks/config/boing.xml.h:14 +#: hacks/config/boxed.xml.h:16 +#: hacks/config/fireflies.xml.h:43 +#: hacks/config/pinion.xml.h:14 msgid "Tiny" msgstr "" @@ -2144,7 +2735,8 @@ msgstr "" msgid "Bouboule" msgstr "" -#: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 +#: hacks/config/bouboule.xml.h:2 +#: hacks/config/rocks.xml.h:3 msgid "Do Red/Blue 3D separation" msgstr "" @@ -2153,25 +2745,33 @@ msgid "Number of Spots" msgstr "" #: hacks/config/bouboule.xml.h:10 -msgid "" -"This draws what looks like a spinning, deforming balloon with varying-sized " -"spots painted on its invisible surface. Written by Jeremie Petit." +msgid "This draws what looks like a spinning, deforming balloon with varying-sized spots painted on its invisible surface. Written by Jeremie Petit." msgstr "" #: hacks/config/bouncingcow.xml.h:1 msgid "A Cow. A Trampoline. Together, they fight crime. By Jamie Zawinski." msgstr "" -#: hacks/config/bouncingcow.xml.h:2 hacks/config/boxed.xml.h:1 -#: hacks/config/carousel.xml.h:3 hacks/config/ccurve.xml.h:3 -#: hacks/config/cubestorm.xml.h:1 hacks/config/flyingtoasters.xml.h:3 -#: hacks/config/fontglide.xml.h:1 hacks/config/gears.xml.h:1 -#: hacks/config/gflux.xml.h:1 hacks/config/glknots.xml.h:1 -#: hacks/config/glmatrix.xml.h:1 hacks/config/jigglypuff.xml.h:1 -#: hacks/config/pinion.xml.h:3 hacks/config/polyhedra.xml.h:3 -#: hacks/config/pyro.xml.h:1 hacks/config/rd-bomb.xml.h:6 -#: hacks/config/rocks.xml.h:1 hacks/config/starwars.xml.h:1 -#: hacks/config/wormhole.xml.h:1 hacks/config/xfishtank.xml.h:1 +#: hacks/config/bouncingcow.xml.h:2 +#: hacks/config/boxed.xml.h:1 +#: hacks/config/carousel.xml.h:3 +#: hacks/config/ccurve.xml.h:3 +#: hacks/config/cubestorm.xml.h:1 +#: hacks/config/flyingtoasters.xml.h:3 +#: hacks/config/fontglide.xml.h:1 +#: hacks/config/gears.xml.h:1 +#: hacks/config/gflux.xml.h:1 +#: hacks/config/glknots.xml.h:1 +#: hacks/config/glmatrix.xml.h:1 +#: hacks/config/jigglypuff.xml.h:1 +#: hacks/config/pinion.xml.h:3 +#: hacks/config/polyhedra.xml.h:3 +#: hacks/config/pyro.xml.h:1 +#: hacks/config/rd-bomb.xml.h:6 +#: hacks/config/rocks.xml.h:1 +#: hacks/config/starwars.xml.h:1 +#: hacks/config/wormhole.xml.h:1 +#: hacks/config/xfishtank.xml.h:1 msgid "Animation Speed" msgstr "" @@ -2203,7 +2803,8 @@ msgstr "" msgid "Wireframe Cow" msgstr "" -#: hacks/config/boxed.xml.h:2 hacks/config/fluidballs.xml.h:2 +#: hacks/config/boxed.xml.h:2 +#: hacks/config/fluidballs.xml.h:2 msgid "Ball Size" msgstr "" @@ -2212,22 +2813,24 @@ msgid "Boxed" msgstr "" #: hacks/config/boxed.xml.h:4 -msgid "" -"Draws a box full of 3D bouncing balls that explode. Written by Sander van " -"Grieken." +msgid "Draws a box full of 3D bouncing balls that explode. Written by Sander van Grieken." msgstr "" #: hacks/config/boxed.xml.h:5 msgid "Explosion Force" msgstr "" -#: hacks/config/boxed.xml.h:9 hacks/config/pipes.xml.h:9 -#: hacks/config/substrate.xml.h:12 hacks/config/wormhole.xml.h:4 +#: hacks/config/boxed.xml.h:9 +#: hacks/config/pipes.xml.h:9 +#: hacks/config/substrate.xml.h:12 +#: hacks/config/wormhole.xml.h:4 msgid "Lots" msgstr "" -#: hacks/config/boxed.xml.h:10 hacks/config/cubestorm.xml.h:5 -#: hacks/config/fontglide.xml.h:9 hacks/config/glknots.xml.h:6 +#: hacks/config/boxed.xml.h:10 +#: hacks/config/cubestorm.xml.h:5 +#: hacks/config/fontglide.xml.h:9 +#: hacks/config/glknots.xml.h:6 #: hacks/config/polyhedra.xml.h:84 msgid "Motion Speed" msgstr "" @@ -2240,11 +2843,13 @@ msgstr "" msgid "Number of Balls" msgstr "" -#: hacks/config/boxed.xml.h:13 hacks/config/hopalong.xml.h:18 +#: hacks/config/boxed.xml.h:13 +#: hacks/config/hopalong.xml.h:18 msgid "Popcorn" msgstr "" -#: hacks/config/boxfit.xml.h:1 hacks/config/popsquares.xml.h:1 +#: hacks/config/boxfit.xml.h:1 +#: hacks/config/popsquares.xml.h:1 msgid "Border" msgstr "" @@ -2252,7 +2857,8 @@ msgstr "" msgid "BoxFit" msgstr "" -#: hacks/config/boxfit.xml.h:3 hacks/config/cubenetic.xml.h:1 +#: hacks/config/boxfit.xml.h:3 +#: hacks/config/cubenetic.xml.h:1 msgid "Boxes" msgstr "" @@ -2273,24 +2879,19 @@ msgid "Color Gradient" msgstr "" #: hacks/config/boxfit.xml.h:9 -#, fuzzy msgid "Grab Images" -msgstr "Propriedades da proteo de tela" +msgstr "Capturar Imagens" #: hacks/config/boxfit.xml.h:10 msgid "Grow By" msgstr "" #: hacks/config/boxfit.xml.h:11 -msgid "" -"Packs the screen with growing squares or circles, colored according to a " -"horizontal or vertical gradient, or according to the colors of the desktop " -"or a loaded image file. The objects grow until they touch, then stop. When " -"the screen is full, they shrink away and the process restarts. Written by " -"Jamie Zawinski." +msgid "Packs the screen with growing squares or circles, colored according to a horizontal or vertical gradient, or according to the colors of the desktop or a loaded image file. The objects grow until they touch, then stop. When the screen is full, they shrink away and the process restarts. Written by Jamie Zawinski." msgstr "" -#: hacks/config/boxfit.xml.h:13 hacks/config/xearth.xml.h:23 +#: hacks/config/boxfit.xml.h:13 +#: hacks/config/xearth.xml.h:23 msgid "Spacing" msgstr "" @@ -2299,34 +2900,51 @@ msgid "Braid" msgstr "" #: hacks/config/braid.xml.h:2 -msgid "" -"Draws random color-cycling inter-braided concentric circles. Written by John " -"Neil." -msgstr "" - -#: hacks/config/braid.xml.h:3 hacks/config/bsod.xml.h:9 -#: hacks/config/coral.xml.h:6 hacks/config/cynosure.xml.h:3 -#: hacks/config/deco.xml.h:4 hacks/config/drift.xml.h:2 -#: hacks/config/epicycle.xml.h:3 hacks/config/eruption.xml.h:3 -#: hacks/config/euler2d.xml.h:1 hacks/config/flame.xml.h:5 -#: hacks/config/galaxy.xml.h:2 hacks/config/glsnake.xml.h:5 -#: hacks/config/helix.xml.h:3 hacks/config/hopalong.xml.h:2 -#: hacks/config/imsmap.xml.h:6 hacks/config/klein.xml.h:1 -#: hacks/config/laser.xml.h:2 hacks/config/menger.xml.h:2 -#: hacks/config/metaballs.xml.h:3 hacks/config/mismunch.xml.h:1 -#: hacks/config/moire.xml.h:3 hacks/config/molecule.xml.h:10 -#: hacks/config/munch.xml.h:2 hacks/config/nerverot.xml.h:8 -#: hacks/config/pedal.xml.h:3 hacks/config/polyhedra.xml.h:16 -#: hacks/config/polyominoes.xml.h:1 hacks/config/rorschach.xml.h:3 -#: hacks/config/rotzoomer.xml.h:5 hacks/config/shadebobs.xml.h:2 -#: hacks/config/sierpinski3d.xml.h:1 hacks/config/spheremonics.xml.h:4 -#: hacks/config/starfish.xml.h:2 hacks/config/substrate.xml.h:6 -#: hacks/config/vidwhacker.xml.h:3 hacks/config/wander.xml.h:7 +msgid "Draws random color-cycling inter-braided concentric circles. Written by John Neil." +msgstr "" + +#: hacks/config/braid.xml.h:3 +#: hacks/config/bsod.xml.h:9 +#: hacks/config/coral.xml.h:6 +#: hacks/config/cynosure.xml.h:3 +#: hacks/config/deco.xml.h:4 +#: hacks/config/drift.xml.h:2 +#: hacks/config/epicycle.xml.h:3 +#: hacks/config/eruption.xml.h:3 +#: hacks/config/euler2d.xml.h:1 +#: hacks/config/flame.xml.h:5 +#: hacks/config/galaxy.xml.h:2 +#: hacks/config/glsnake.xml.h:5 +#: hacks/config/helix.xml.h:3 +#: hacks/config/hopalong.xml.h:2 +#: hacks/config/imsmap.xml.h:6 +#: hacks/config/klein.xml.h:1 +#: hacks/config/laser.xml.h:2 +#: hacks/config/menger.xml.h:2 +#: hacks/config/metaballs.xml.h:3 +#: hacks/config/mismunch.xml.h:1 +#: hacks/config/moire.xml.h:3 +#: hacks/config/molecule.xml.h:10 +#: hacks/config/munch.xml.h:2 +#: hacks/config/nerverot.xml.h:8 +#: hacks/config/pedal.xml.h:3 +#: hacks/config/polyhedra.xml.h:16 +#: hacks/config/polyominoes.xml.h:1 +#: hacks/config/rorschach.xml.h:3 +#: hacks/config/rotzoomer.xml.h:5 +#: hacks/config/shadebobs.xml.h:2 +#: hacks/config/sierpinski3d.xml.h:1 +#: hacks/config/spheremonics.xml.h:4 +#: hacks/config/starfish.xml.h:2 +#: hacks/config/substrate.xml.h:6 +#: hacks/config/vidwhacker.xml.h:3 +#: hacks/config/wander.xml.h:7 #: hacks/config/xspirograph.xml.h:3 msgid "Duration" msgstr "" -#: hacks/config/braid.xml.h:5 hacks/config/epicycle.xml.h:7 +#: hacks/config/braid.xml.h:5 +#: hacks/config/epicycle.xml.h:7 #: hacks/config/nerverot.xml.h:12 msgid "Line Thickness" msgstr "" @@ -2335,12 +2953,14 @@ msgstr "" msgid "Max Rings" msgstr "" -#: hacks/config/bsod.xml.h:1 hacks/config/molecule.xml.h:1 +#: hacks/config/bsod.xml.h:1 +#: hacks/config/molecule.xml.h:1 #: hacks/config/vidwhacker.xml.h:1 msgid "2 minutes" msgstr "" -#: hacks/config/bsod.xml.h:2 hacks/config/molecule.xml.h:2 +#: hacks/config/bsod.xml.h:2 +#: hacks/config/molecule.xml.h:2 msgid "5 seconds" msgstr "" @@ -2365,10 +2985,7 @@ msgid "BSOD" msgstr "" #: hacks/config/bsod.xml.h:8 -msgid "" -"BSOD stands for ``Blue Screen of Death.'' The finest in personal computer " -"emulation, this hack simulates popular screen savers from a number of less " -"robust operating systems. Written by Jamie Zawinski." +msgid "BSOD stands for ``Blue Screen of Death.'' The finest in personal computer emulation, this hack simulates popular screen savers from a number of less robust operating systems. Written by Jamie Zawinski." msgstr "" #: hacks/config/bsod.xml.h:10 @@ -2464,16 +3081,15 @@ msgid "Bubble3D" msgstr "" #: hacks/config/bubble3d.xml.h:3 -msgid "" -"Draws a stream of rising, undulating 3D bubbles, rising toward the top of " -"the screen, with nice specular reflections. Written by Richard Jones." +msgid "Draws a stream of rising, undulating 3D bubbles, rising toward the top of the screen, with nice specular reflections. Written by Richard Jones." msgstr "" #: hacks/config/bubble3d.xml.h:8 msgid "Transparent Bubbles" msgstr "" -#: hacks/config/bubbles.xml.h:1 hacks/config/xfishtank.xml.h:2 +#: hacks/config/bubbles.xml.h:1 +#: hacks/config/xfishtank.xml.h:2 msgid "Bubbles" msgstr "" @@ -2506,17 +3122,11 @@ msgid "Leave Trails" msgstr "" #: hacks/config/bubbles.xml.h:12 -msgid "" -"This simulates the kind of bubble formation that happens when water boils:" -"small bubbles appear, and as they get closer to each other, they combine to " -"form larger bubbles, which eventually pop. Written by James Macnicol." +msgid "This simulates the kind of bubble formation that happens when water boils:small bubbles appear, and as they get closer to each other, they combine to form larger bubbles, which eventually pop. Written by James Macnicol." msgstr "" #: hacks/config/bumps.xml.h:1 -msgid "" -"A bit like `Spotlight', except that instead of merely exposing part of your " -"desktop, it creates a bump map from it. Basically, it 3D-izes a roaming " -"section of your desktop, based on color intensity. Written by Shane Smit." +msgid "A bit like `Spotlight', except that instead of merely exposing part of your desktop, it creates a bump map from it. Basically, it 3D-izes a roaming section of your desktop, based on color intensity. Written by Shane Smit." msgstr "" #: hacks/config/bumps.xml.h:2 @@ -2527,21 +3137,25 @@ msgstr "" msgid "Cage" msgstr "" -#: hacks/config/cage.xml.h:7 hacks/config/cube21.xml.h:22 +#: hacks/config/cage.xml.h:7 +#: hacks/config/cube21.xml.h:22 msgid "Textured" msgstr "" #: hacks/config/cage.xml.h:8 -msgid "" -"This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius strip, and " -"rotates it in three dimensions. Written by Marcelo Vianna." -msgstr "" - -#: hacks/config/carousel.xml.h:1 hacks/config/coral.xml.h:1 -#: hacks/config/deco.xml.h:1 hacks/config/helix.xml.h:1 -#: hacks/config/imsmap.xml.h:1 hacks/config/jigsaw.xml.h:2 -#: hacks/config/moire.xml.h:1 hacks/config/pedal.xml.h:1 -#: hacks/config/rorschach.xml.h:1 hacks/config/wander.xml.h:2 +msgid "This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius strip, and rotates it in three dimensions. Written by Marcelo Vianna." +msgstr "" + +#: hacks/config/carousel.xml.h:1 +#: hacks/config/coral.xml.h:1 +#: hacks/config/deco.xml.h:1 +#: hacks/config/helix.xml.h:1 +#: hacks/config/imsmap.xml.h:1 +#: hacks/config/jigsaw.xml.h:2 +#: hacks/config/moire.xml.h:1 +#: hacks/config/pedal.xml.h:1 +#: hacks/config/rorschach.xml.h:1 +#: hacks/config/wander.xml.h:2 #: hacks/config/xspirograph.xml.h:1 msgid "1 Minute" msgstr "" @@ -2554,22 +3168,14 @@ msgstr "" msgid "Carousel" msgstr "" -#: hacks/config/carousel.xml.h:6 hacks/config/electricsheep.xml.h:7 +#: hacks/config/carousel.xml.h:6 +#: hacks/config/electricsheep.xml.h:7 #: hacks/config/fliptext.xml.h:8 msgid "Frame Rate" -msgstr "" +msgstr "Taxa de Quadros" #: hacks/config/carousel.xml.h:8 -msgid "" -"Loads several random images, and displays them flying in a circular " -"formation. The circle changes speed and direction randomly, tilts on its " -"axis, and the images move in and out. To tell it where to find the images to " -"display, go to the \"Advanced\" tab on the Screensaver Preferences window. " -"Select \"Choose Random Images\", and enter your image directory in the text " -"field right below that. (Note: not the the \"Advanced\" button at the bottom " -"of this window: the tab at the top of the *other* window.) This program " -"requires a good video card capable of supporting large textures. Written by " -"Jamie Zawinski." +msgid "Loads several random images, and displays them flying in a circular formation. The circle changes speed and direction randomly, tilts on its axis, and the images move in and out. To tell it where to find the images to display, go to the \"Advanced\" tab on the Screensaver Preferences window. Select \"Choose Random Images\", and enter your image directory in the text field right below that. (Note: not the the \"Advanced\" button at the bottom of this window: the tab at the top of the *other* window.) This program requires a good video card capable of supporting large textures. Written by Jamie Zawinski." msgstr "" #: hacks/config/carousel.xml.h:10 @@ -2580,7 +3186,8 @@ msgstr "" msgid "Number of Images:" msgstr "" -#: hacks/config/carousel.xml.h:13 hacks/config/glslideshow.xml.h:20 +#: hacks/config/carousel.xml.h:13 +#: hacks/config/glslideshow.xml.h:20 msgid "Show Image Titles" msgstr "" @@ -2596,7 +3203,8 @@ msgstr "" msgid "Tilt Left/Right Only" msgstr "" -#: hacks/config/carousel.xml.h:18 hacks/config/glslideshow.xml.h:21 +#: hacks/config/carousel.xml.h:18 +#: hacks/config/glslideshow.xml.h:21 #: hacks/config/mirrorblob.xml.h:21 msgid "Time until loading a new image:" msgstr "" @@ -2609,7 +3217,8 @@ msgstr "" msgid "0 seconds" msgstr "" -#: hacks/config/ccurve.xml.h:2 hacks/config/polyhedra.xml.h:2 +#: hacks/config/ccurve.xml.h:2 +#: hacks/config/polyhedra.xml.h:2 msgid "30 seconds" msgstr "" @@ -2621,17 +3230,19 @@ msgstr "" msgid "Change Image Every" msgstr "" -#: hacks/config/ccurve.xml.h:6 hacks/config/coral.xml.h:5 -#: hacks/config/imsmap.xml.h:5 hacks/config/kumppa.xml.h:1 -#: hacks/config/qix.xml.h:6 hacks/config/squiral.xml.h:2 -#: hacks/config/wander.xml.h:4 hacks/config/xmatrix.xml.h:2 +#: hacks/config/ccurve.xml.h:6 +#: hacks/config/coral.xml.h:5 +#: hacks/config/imsmap.xml.h:5 +#: hacks/config/kumppa.xml.h:1 +#: hacks/config/qix.xml.h:6 +#: hacks/config/squiral.xml.h:2 +#: hacks/config/wander.xml.h:4 +#: hacks/config/xmatrix.xml.h:2 msgid "Density" msgstr "" #: hacks/config/ccurve.xml.h:8 -msgid "" -"Generates self-similar linear fractals, including the classic ``C Curve.'' " -"Written by Rick Campbell." +msgid "Generates self-similar linear fractals, including the classic ``C Curve.'' Written by Rick Campbell." msgstr "" #: hacks/config/celtic.xml.h:1 @@ -2647,8 +3258,7 @@ msgid "Pause" msgstr "" #: hacks/config/celtic.xml.h:6 -msgid "" -"Repeatedly draws random Celtic cross-stitch patterns. By Max Froumentin." +msgid "Repeatedly draws random Celtic cross-stitch patterns. By Max Froumentin." msgstr "" #: hacks/config/circuit.xml.h:1 @@ -2659,7 +3269,8 @@ msgstr "" msgid "Circuit" msgstr "" -#: hacks/config/circuit.xml.h:3 hacks/config/gflux.xml.h:4 +#: hacks/config/circuit.xml.h:3 +#: hacks/config/gflux.xml.h:4 #: hacks/config/pulsar.xml.h:2 msgid "Directional Lighting" msgstr "" @@ -2672,24 +3283,32 @@ msgstr "" msgid "Parts" msgstr "" -#: hacks/config/circuit.xml.h:7 hacks/config/flipscreen3d.xml.h:4 -#: hacks/config/gleidescope.xml.h:9 hacks/config/glplanet.xml.h:6 +#: hacks/config/circuit.xml.h:7 +#: hacks/config/flipscreen3d.xml.h:4 +#: hacks/config/gleidescope.xml.h:9 +#: hacks/config/glplanet.xml.h:6 #: hacks/config/ifs.xml.h:10 msgid "Rotate" msgstr "" -#: hacks/config/circuit.xml.h:8 hacks/config/pinion.xml.h:10 +#: hacks/config/circuit.xml.h:8 +#: hacks/config/pinion.xml.h:10 msgid "Rotation Speed" msgstr "" -#: hacks/config/circuit.xml.h:12 hacks/config/cube21.xml.h:18 -#: hacks/config/cubestorm.xml.h:9 hacks/config/dangerball.xml.h:9 -#: hacks/config/engine.xml.h:17 hacks/config/klein.xml.h:9 -#: hacks/config/polyhedra.xml.h:145 hacks/config/whirlygig.xml.h:14 +#: hacks/config/circuit.xml.h:12 +#: hacks/config/cube21.xml.h:18 +#: hacks/config/cubestorm.xml.h:9 +#: hacks/config/dangerball.xml.h:9 +#: hacks/config/engine.xml.h:17 +#: hacks/config/klein.xml.h:9 +#: hacks/config/polyhedra.xml.h:145 +#: hacks/config/whirlygig.xml.h:14 msgid "Spin" msgstr "" -#: hacks/config/cloudlife.xml.h:1 hacks/config/demon.xml.h:2 +#: hacks/config/cloudlife.xml.h:1 +#: hacks/config/demon.xml.h:2 #: hacks/config/petri.xml.h:1 msgid "Cell Size" msgstr "" @@ -2699,12 +3318,7 @@ msgid "CloudLife" msgstr "" #: hacks/config/cloudlife.xml.h:4 -msgid "" -"Generates cloud-like formations based on a variant of Conway's Life. The " -"difference is that cells have a maximum age, after which they count as 3 for " -"populating the next generation. This makes long-lived formations explode " -"instead of just sitting there burning a hole in your screen. Written by Don " -"Marti." +msgid "Generates cloud-like formations based on a variant of Conway's Life. The difference is that cells have a maximum age, after which they count as 3 for populating the next generation. This makes long-lived formations explode instead of just sitting there burning a hole in your screen. Written by Don Marti." msgstr "" #: hacks/config/cloudlife.xml.h:6 @@ -2727,24 +3341,30 @@ msgstr "" msgid "Compass" msgstr "" -#: hacks/config/compass.xml.h:2 hacks/config/deluxe.xml.h:3 -#: hacks/config/fontglide.xml.h:3 hacks/config/fuzzyflakes.xml.h:5 -#: hacks/config/interference.xml.h:6 hacks/config/kumppa.xml.h:2 -#: hacks/config/nerverot.xml.h:6 hacks/config/piecewise.xml.h:3 +#: hacks/config/compass.xml.h:2 +#: hacks/config/deluxe.xml.h:3 +#: hacks/config/fontglide.xml.h:3 +#: hacks/config/fuzzyflakes.xml.h:5 +#: hacks/config/interference.xml.h:6 +#: hacks/config/kumppa.xml.h:2 +#: hacks/config/nerverot.xml.h:6 +#: hacks/config/piecewise.xml.h:3 #: hacks/config/pipes.xml.h:4 msgid "Double Buffer" msgstr "" #: hacks/config/compass.xml.h:6 -msgid "" -"This draws a compass, with all elements spinning about randomly, for that " -"``lost and nauseous'' feeling. Written by Jamie Zawinski." +msgid "This draws a compass, with all elements spinning about randomly, for that ``lost and nauseous'' feeling. Written by Jamie Zawinski." msgstr "" -#: hacks/config/coral.xml.h:2 hacks/config/deco.xml.h:2 -#: hacks/config/glslideshow.xml.h:1 hacks/config/helix.xml.h:2 -#: hacks/config/imsmap.xml.h:2 hacks/config/moire.xml.h:2 -#: hacks/config/pedal.xml.h:2 hacks/config/rorschach.xml.h:2 +#: hacks/config/coral.xml.h:2 +#: hacks/config/deco.xml.h:2 +#: hacks/config/glslideshow.xml.h:1 +#: hacks/config/helix.xml.h:2 +#: hacks/config/imsmap.xml.h:2 +#: hacks/config/moire.xml.h:2 +#: hacks/config/pedal.xml.h:2 +#: hacks/config/rorschach.xml.h:2 #: hacks/config/xspirograph.xml.h:2 msgid "1 Second" msgstr "" @@ -2753,30 +3373,41 @@ msgstr "" msgid "Coral" msgstr "" -#: hacks/config/coral.xml.h:4 hacks/config/fireworkx.xml.h:2 -#: hacks/config/gflux.xml.h:3 hacks/config/glblur.xml.h:2 -#: hacks/config/glmatrix.xml.h:3 hacks/config/imsmap.xml.h:4 -#: hacks/config/lavalite.xml.h:6 hacks/config/pyro.xml.h:2 -#: hacks/config/qix.xml.h:5 hacks/config/squiral.xml.h:1 +#: hacks/config/coral.xml.h:4 +#: hacks/config/fireworkx.xml.h:2 +#: hacks/config/gflux.xml.h:3 +#: hacks/config/glblur.xml.h:2 +#: hacks/config/glmatrix.xml.h:3 +#: hacks/config/imsmap.xml.h:4 +#: hacks/config/lavalite.xml.h:6 +#: hacks/config/pyro.xml.h:2 +#: hacks/config/qix.xml.h:5 +#: hacks/config/squiral.xml.h:1 #: hacks/config/xearth.xml.h:4 msgid "Dense" msgstr "" -#: hacks/config/coral.xml.h:10 hacks/config/squiral.xml.h:13 +#: hacks/config/coral.xml.h:10 +#: hacks/config/squiral.xml.h:13 msgid "Seeds" msgstr "" #: hacks/config/coral.xml.h:11 -msgid "" -"Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber." -msgstr "" - -#: hacks/config/coral.xml.h:13 hacks/config/fireworkx.xml.h:10 -#: hacks/config/gflux.xml.h:13 hacks/config/glblur.xml.h:15 -#: hacks/config/glmatrix.xml.h:19 hacks/config/imsmap.xml.h:13 -#: hacks/config/lavalite.xml.h:29 hacks/config/pyro.xml.h:14 -#: hacks/config/qix.xml.h:21 hacks/config/squiral.xml.h:15 -#: hacks/config/xearth.xml.h:24 hacks/config/xmatrix.xml.h:17 +msgid "Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber." +msgstr "" + +#: hacks/config/coral.xml.h:13 +#: hacks/config/fireworkx.xml.h:10 +#: hacks/config/gflux.xml.h:13 +#: hacks/config/glblur.xml.h:15 +#: hacks/config/glmatrix.xml.h:19 +#: hacks/config/imsmap.xml.h:13 +#: hacks/config/lavalite.xml.h:29 +#: hacks/config/pyro.xml.h:14 +#: hacks/config/qix.xml.h:21 +#: hacks/config/squiral.xml.h:15 +#: hacks/config/xearth.xml.h:24 +#: hacks/config/xmatrix.xml.h:17 msgid "Sparse" msgstr "" @@ -2785,9 +3416,7 @@ msgid "Cosmos" msgstr "" #: hacks/config/cosmos.xml.h:2 -msgid "" -"Draws fireworks and zooming, fading flares. By Tom Campbell. You can find it " -"at <http://www.cosmosx.org/>" +msgid "Draws fireworks and zooming, fading flares. By Tom Campbell. You can find it at <http://www.cosmosx.org/>" msgstr "" #: hacks/config/crackberg.xml.h:1 @@ -2811,9 +3440,7 @@ msgid "Flat Shading" msgstr "" #: hacks/config/crackberg.xml.h:6 -msgid "" -"Flies through height maps, optionally animating the creation and destruction " -"of generated tiles; tiles `grow' into place." +msgid "Flies through height maps, optionally animating the creation and destruction of generated tiles; tiles `grow' into place." msgstr "" #: hacks/config/crackberg.xml.h:7 @@ -2832,7 +3459,8 @@ msgstr "" msgid "Immediate" msgstr "" -#: hacks/config/crackberg.xml.h:11 hacks/config/glslideshow.xml.h:14 +#: hacks/config/crackberg.xml.h:11 +#: hacks/config/glslideshow.xml.h:14 msgid "Letterbox" msgstr "" @@ -2844,9 +3472,12 @@ msgstr "" msgid "Plain" msgstr "" -#: hacks/config/crackberg.xml.h:16 hacks/config/flurry.xml.h:8 -#: hacks/config/fontglide.xml.h:12 hacks/config/jigglypuff.xml.h:13 -#: hacks/config/sballs.xml.h:10 hacks/config/whirlygig.xml.h:12 +#: hacks/config/crackberg.xml.h:16 +#: hacks/config/flurry.xml.h:8 +#: hacks/config/fontglide.xml.h:12 +#: hacks/config/jigglypuff.xml.h:13 +#: hacks/config/sballs.xml.h:10 +#: hacks/config/whirlygig.xml.h:12 msgid "Random" msgstr "" @@ -2866,7 +3497,8 @@ msgstr "" msgid "Vomit" msgstr "" -#: hacks/config/crackberg.xml.h:22 hacks/config/flurry.xml.h:11 +#: hacks/config/crackberg.xml.h:22 +#: hacks/config/flurry.xml.h:11 msgid "Water" msgstr "" @@ -2875,28 +3507,39 @@ msgid "Critical" msgstr "" #: hacks/config/critical.xml.h:2 -msgid "" -"Draws a system of self-organizing lines. It starts out as random squiggles, " -"but after a few iterations, order begins to appear. Written by Martin Pool." +msgid "Draws a system of self-organizing lines. It starts out as random squiggles, but after a few iterations, order begins to appear. Written by Martin Pool." msgstr "" #: hacks/config/crystal.xml.h:1 msgid "Center on Screen" msgstr "" -#: hacks/config/crystal.xml.h:2 hacks/config/deluxe.xml.h:1 -#: hacks/config/fadeplot.xml.h:1 hacks/config/flow.xml.h:1 -#: hacks/config/galaxy.xml.h:1 hacks/config/glforestfire.xml.h:1 -#: hacks/config/grav.xml.h:1 hacks/config/julia.xml.h:1 -#: hacks/config/laser.xml.h:1 hacks/config/lisa.xml.h:1 -#: hacks/config/lissie.xml.h:2 hacks/config/morph3d.xml.h:2 -#: hacks/config/mountain.xml.h:1 hacks/config/piecewise.xml.h:2 -#: hacks/config/qix.xml.h:4 hacks/config/rocks.xml.h:2 -#: hacks/config/rotor.xml.h:2 hacks/config/rubik.xml.h:1 -#: hacks/config/shadebobs.xml.h:1 hacks/config/sierpinski.xml.h:1 -#: hacks/config/slip.xml.h:1 hacks/config/spiral.xml.h:1 -#: hacks/config/sproingies.xml.h:1 hacks/config/superquadrics.xml.h:1 -#: hacks/config/swirl.xml.h:1 hacks/config/worm.xml.h:2 +#: hacks/config/crystal.xml.h:2 +#: hacks/config/deluxe.xml.h:1 +#: hacks/config/fadeplot.xml.h:1 +#: hacks/config/flow.xml.h:1 +#: hacks/config/galaxy.xml.h:1 +#: hacks/config/glforestfire.xml.h:1 +#: hacks/config/grav.xml.h:1 +#: hacks/config/julia.xml.h:1 +#: hacks/config/laser.xml.h:1 +#: hacks/config/lisa.xml.h:1 +#: hacks/config/lissie.xml.h:2 +#: hacks/config/morph3d.xml.h:2 +#: hacks/config/mountain.xml.h:1 +#: hacks/config/piecewise.xml.h:2 +#: hacks/config/qix.xml.h:4 +#: hacks/config/rocks.xml.h:2 +#: hacks/config/rotor.xml.h:2 +#: hacks/config/rubik.xml.h:1 +#: hacks/config/shadebobs.xml.h:1 +#: hacks/config/sierpinski.xml.h:1 +#: hacks/config/slip.xml.h:1 +#: hacks/config/spiral.xml.h:1 +#: hacks/config/sproingies.xml.h:1 +#: hacks/config/superquadrics.xml.h:1 +#: hacks/config/swirl.xml.h:1 +#: hacks/config/worm.xml.h:2 msgid "Count" msgstr "" @@ -2908,7 +3551,8 @@ msgstr "" msgid "Draw Cell" msgstr "" -#: hacks/config/crystal.xml.h:5 hacks/config/spheremonics.xml.h:3 +#: hacks/config/crystal.xml.h:5 +#: hacks/config/spheremonics.xml.h:3 #: hacks/config/xearth.xml.h:6 msgid "Draw Grid" msgstr "" @@ -2918,9 +3562,7 @@ msgid "Horizontal Symmetries" msgstr "" #: hacks/config/crystal.xml.h:9 -msgid "" -"Moving polygons, similar to a kaleidescope (more like a kaleidescope than " -"the hack called `kaleid,' actually.) This one by Jouk Jansen." +msgid "Moving polygons, similar to a kaleidescope (more like a kaleidescope than the hack called `kaleid,' actually.) This one by Jouk Jansen." msgstr "" #: hacks/config/crystal.xml.h:14 @@ -2928,9 +3570,7 @@ msgid "Vertical Symmetries" msgstr "" #: hacks/config/cube21.xml.h:1 -msgid "" -"Animates a Rubik-like puzzle known as Cube 21 or Square-1. The rotations are " -"chosen randomly. Requires OpenGL. Written by Vasek Potocek." +msgid "Animates a Rubik-like puzzle known as Cube 21 or Square-1. The rotations are chosen randomly. Requires OpenGL. Written by Vasek Potocek." msgstr "" #: hacks/config/cube21.xml.h:2 @@ -2957,7 +3597,8 @@ msgstr "" msgid "Random color" msgstr "" -#: hacks/config/cube21.xml.h:11 hacks/config/rocks.xml.h:8 +#: hacks/config/cube21.xml.h:11 +#: hacks/config/rocks.xml.h:8 msgid "Rotation" msgstr "" @@ -3013,67 +3654,96 @@ msgstr "" msgid "Display Wireframe" msgstr "" -#: hacks/config/cubenetic.xml.h:6 hacks/config/glblur.xml.h:3 -#: hacks/config/glknots.xml.h:2 hacks/config/gltext.xml.h:3 -#: hacks/config/lavalite.xml.h:7 hacks/config/menger.xml.h:1 -#: hacks/config/molecule.xml.h:4 hacks/config/spheremonics.xml.h:1 +#: hacks/config/cubenetic.xml.h:6 +#: hacks/config/glblur.xml.h:3 +#: hacks/config/glknots.xml.h:2 +#: hacks/config/gltext.xml.h:3 +#: hacks/config/lavalite.xml.h:7 +#: hacks/config/menger.xml.h:1 +#: hacks/config/molecule.xml.h:4 +#: hacks/config/spheremonics.xml.h:1 #: hacks/config/tangram.xml.h:1 msgid "Don't Rotate" msgstr "" #: hacks/config/cubenetic.xml.h:7 -msgid "" -"Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns " -"undulating across their surfaces. It's sort of a cubist Lavalite. Written by " -"Jamie Zawinski." +msgid "Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns undulating across their surfaces. It's sort of a cubist Lavalite. Written by Jamie Zawinski." msgstr "" -#: hacks/config/cubenetic.xml.h:14 hacks/config/glblur.xml.h:6 -#: hacks/config/glknots.xml.h:8 hacks/config/gltext.xml.h:7 -#: hacks/config/lavalite.xml.h:19 hacks/config/menger.xml.h:7 -#: hacks/config/molecule.xml.h:15 hacks/config/spheremonics.xml.h:10 +#: hacks/config/cubenetic.xml.h:14 +#: hacks/config/glblur.xml.h:6 +#: hacks/config/glknots.xml.h:8 +#: hacks/config/gltext.xml.h:7 +#: hacks/config/lavalite.xml.h:19 +#: hacks/config/menger.xml.h:7 +#: hacks/config/molecule.xml.h:15 +#: hacks/config/spheremonics.xml.h:10 msgid "Rotate around X and Y axes" msgstr "" -#: hacks/config/cubenetic.xml.h:15 hacks/config/glblur.xml.h:7 -#: hacks/config/glknots.xml.h:9 hacks/config/gltext.xml.h:8 -#: hacks/config/lavalite.xml.h:20 hacks/config/menger.xml.h:8 -#: hacks/config/molecule.xml.h:16 hacks/config/spheremonics.xml.h:11 +#: hacks/config/cubenetic.xml.h:15 +#: hacks/config/glblur.xml.h:7 +#: hacks/config/glknots.xml.h:9 +#: hacks/config/gltext.xml.h:8 +#: hacks/config/lavalite.xml.h:20 +#: hacks/config/menger.xml.h:8 +#: hacks/config/molecule.xml.h:16 +#: hacks/config/spheremonics.xml.h:11 msgid "Rotate around X and Z axes" msgstr "" -#: hacks/config/cubenetic.xml.h:16 hacks/config/glblur.xml.h:8 -#: hacks/config/glknots.xml.h:10 hacks/config/gltext.xml.h:9 -#: hacks/config/lavalite.xml.h:21 hacks/config/menger.xml.h:9 -#: hacks/config/molecule.xml.h:17 hacks/config/spheremonics.xml.h:12 +#: hacks/config/cubenetic.xml.h:16 +#: hacks/config/glblur.xml.h:8 +#: hacks/config/glknots.xml.h:10 +#: hacks/config/gltext.xml.h:9 +#: hacks/config/lavalite.xml.h:21 +#: hacks/config/menger.xml.h:9 +#: hacks/config/molecule.xml.h:17 +#: hacks/config/spheremonics.xml.h:12 msgid "Rotate around X axis" msgstr "" -#: hacks/config/cubenetic.xml.h:17 hacks/config/glblur.xml.h:9 -#: hacks/config/glknots.xml.h:11 hacks/config/gltext.xml.h:10 -#: hacks/config/lavalite.xml.h:22 hacks/config/menger.xml.h:10 -#: hacks/config/molecule.xml.h:18 hacks/config/spheremonics.xml.h:13 +#: hacks/config/cubenetic.xml.h:17 +#: hacks/config/glblur.xml.h:9 +#: hacks/config/glknots.xml.h:11 +#: hacks/config/gltext.xml.h:10 +#: hacks/config/lavalite.xml.h:22 +#: hacks/config/menger.xml.h:10 +#: hacks/config/molecule.xml.h:18 +#: hacks/config/spheremonics.xml.h:13 msgid "Rotate around Y and Z axes" msgstr "" -#: hacks/config/cubenetic.xml.h:18 hacks/config/glblur.xml.h:10 -#: hacks/config/glknots.xml.h:12 hacks/config/gltext.xml.h:11 -#: hacks/config/lavalite.xml.h:23 hacks/config/menger.xml.h:11 -#: hacks/config/molecule.xml.h:19 hacks/config/spheremonics.xml.h:14 +#: hacks/config/cubenetic.xml.h:18 +#: hacks/config/glblur.xml.h:10 +#: hacks/config/glknots.xml.h:12 +#: hacks/config/gltext.xml.h:11 +#: hacks/config/lavalite.xml.h:23 +#: hacks/config/menger.xml.h:11 +#: hacks/config/molecule.xml.h:19 +#: hacks/config/spheremonics.xml.h:14 msgid "Rotate around Y axis" msgstr "" -#: hacks/config/cubenetic.xml.h:19 hacks/config/glblur.xml.h:11 -#: hacks/config/glknots.xml.h:13 hacks/config/gltext.xml.h:12 -#: hacks/config/lavalite.xml.h:24 hacks/config/menger.xml.h:12 -#: hacks/config/molecule.xml.h:20 hacks/config/spheremonics.xml.h:15 +#: hacks/config/cubenetic.xml.h:19 +#: hacks/config/glblur.xml.h:11 +#: hacks/config/glknots.xml.h:13 +#: hacks/config/gltext.xml.h:12 +#: hacks/config/lavalite.xml.h:24 +#: hacks/config/menger.xml.h:12 +#: hacks/config/molecule.xml.h:20 +#: hacks/config/spheremonics.xml.h:15 msgid "Rotate around Z axis" msgstr "" -#: hacks/config/cubenetic.xml.h:20 hacks/config/glblur.xml.h:12 -#: hacks/config/glknots.xml.h:14 hacks/config/gltext.xml.h:13 -#: hacks/config/lavalite.xml.h:25 hacks/config/menger.xml.h:13 -#: hacks/config/molecule.xml.h:21 hacks/config/spheremonics.xml.h:16 +#: hacks/config/cubenetic.xml.h:20 +#: hacks/config/glblur.xml.h:12 +#: hacks/config/glknots.xml.h:14 +#: hacks/config/gltext.xml.h:13 +#: hacks/config/lavalite.xml.h:25 +#: hacks/config/menger.xml.h:13 +#: hacks/config/molecule.xml.h:21 +#: hacks/config/spheremonics.xml.h:16 msgid "Rotate around all three axes" msgstr "" @@ -3089,13 +3759,20 @@ msgstr "" msgid "Surface Pattern Speed" msgstr "" -#: hacks/config/cubenetic.xml.h:28 hacks/config/cubestorm.xml.h:13 -#: hacks/config/dangerball.xml.h:10 hacks/config/engine.xml.h:20 -#: hacks/config/glblur.xml.h:18 hacks/config/glforestfire.xml.h:19 -#: hacks/config/glknots.xml.h:22 hacks/config/glplanet.xml.h:14 -#: hacks/config/gltext.xml.h:20 hacks/config/lavalite.xml.h:31 -#: hacks/config/menger.xml.h:20 hacks/config/molecule.xml.h:26 -#: hacks/config/polyhedra.xml.h:165 hacks/config/spheremonics.xml.h:25 +#: hacks/config/cubenetic.xml.h:28 +#: hacks/config/cubestorm.xml.h:13 +#: hacks/config/dangerball.xml.h:10 +#: hacks/config/engine.xml.h:20 +#: hacks/config/glblur.xml.h:18 +#: hacks/config/glforestfire.xml.h:19 +#: hacks/config/glknots.xml.h:22 +#: hacks/config/glplanet.xml.h:14 +#: hacks/config/gltext.xml.h:20 +#: hacks/config/lavalite.xml.h:31 +#: hacks/config/menger.xml.h:20 +#: hacks/config/molecule.xml.h:26 +#: hacks/config/polyhedra.xml.h:165 +#: hacks/config/spheremonics.xml.h:25 #: hacks/config/wander.xml.h:15 msgid "Wander" msgstr "" @@ -3105,9 +3782,7 @@ msgid "CubeStorm" msgstr "" #: hacks/config/cubestorm.xml.h:3 -msgid "" -"Draws a series of rotating 3D boxes that intersect each other and eventually " -"fill space. Written by Jamie Zawinski." +msgid "Draws a series of rotating 3D boxes that intersect each other and eventually fill space. Written by Jamie Zawinski." msgstr "" #: hacks/config/cubestorm.xml.h:6 @@ -3119,11 +3794,7 @@ msgid "Strut Thickness" msgstr "" #: hacks/config/cynosure.xml.h:1 -msgid "" -"A hack similar to `greynetic', but less frenetic. The first implementation " -"was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet " -"clone. That clone was discovered by Jamie Zawinski, and ported to C for " -"inclusion here." +msgid "A hack similar to `greynetic', but less frenetic. The first implementation was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet clone. That clone was discovered by Jamie Zawinski, and ported to C for inclusion here." msgstr "" #: hacks/config/cynosure.xml.h:2 @@ -3135,9 +3806,7 @@ msgid "DangerBall" msgstr "" #: hacks/config/dangerball.xml.h:2 -msgid "" -"Draws a ball that periodically extrudes many random spikes. Ouch! Written by " -"Jamie Zawinski." +msgid "Draws a ball that periodically extrudes many random spikes. Ouch! Written by Jamie Zawinski." msgstr "" #: hacks/config/dangerball.xml.h:7 @@ -3213,19 +3882,15 @@ msgid "Stretchy Melt" msgstr "" #: hacks/config/decayscreen.xml.h:20 -msgid "" -"This takes an image and makes it melt. You've no doubt seen this effect " -"before, but no screensaver would really be complete without it. It works " -"best if there's something colorful visible. Warning, if the effect continues " -"after the screen saver is off, seek medical attention. Written by David " -"Wald, Vivek Khera, Jamie Zawinski, and Vince Levey." +msgid "This takes an image and makes it melt. You've no doubt seen this effect before, but no screensaver would really be complete without it. It works best if there's something colorful visible. Warning, if the effect continues after the screen saver is off, seek medical attention. Written by David Wald, Vivek Khera, Jamie Zawinski, and Vince Levey." msgstr "" #: hacks/config/deco.xml.h:3 msgid "Deco" msgstr "" -#: hacks/config/deco.xml.h:6 hacks/config/menger.xml.h:5 +#: hacks/config/deco.xml.h:6 +#: hacks/config/menger.xml.h:5 #: hacks/config/sierpinski3d.xml.h:4 msgid "Max Depth" msgstr "" @@ -3235,15 +3900,13 @@ msgid "Min Size" msgstr "" #: hacks/config/deco.xml.h:9 -msgid "" -"This one subdivides and colors rectangles randomly. It looks kind of like " -"Brady-Bunch-era rec-room wall paneling. (Raven says: ``this screensaver is " -"ugly enough to peel paint.'') Written by Jamie Zawinski, inspired by Java " -"code by Michael Bayne." +msgid "This one subdivides and colors rectangles randomly. It looks kind of like Brady-Bunch-era rec-room wall paneling. (Raven says: ``this screensaver is ugly enough to peel paint.'') Written by Jamie Zawinski, inspired by Java code by Michael Bayne." msgstr "" -#: hacks/config/deco.xml.h:11 hacks/config/rd-bomb.xml.h:23 -#: hacks/config/whirlygig.xml.h:20 hacks/config/xearth.xml.h:33 +#: hacks/config/deco.xml.h:11 +#: hacks/config/rd-bomb.xml.h:23 +#: hacks/config/whirlygig.xml.h:20 +#: hacks/config/xearth.xml.h:33 #: hacks/config/zoom.xml.h:10 msgid "x" msgstr "" @@ -3253,11 +3916,7 @@ msgid "Deluxe" msgstr "" #: hacks/config/deluxe.xml.h:12 -msgid "" -"This draws a pulsing sequence of stars, circles, and lines. It would look " -"better if it was faster, but as far as I can tell, there is no way to make " -"this be both: fast, and flicker-free. Yet another reason X sucks. Written by " -"Jamie Zawinski." +msgid "This draws a pulsing sequence of stars, circles, and lines. It would look better if it was faster, but as far as I can tell, there is no way to make this be both: fast, and flicker-free. Yet another reason X sucks. Written by Jamie Zawinski." msgstr "" #: hacks/config/deluxe.xml.h:13 @@ -3265,9 +3924,7 @@ msgid "Transparency" msgstr "" #: hacks/config/demon.xml.h:1 -msgid "" -"A cellular automaton that starts with a random field, and organizes it into " -"stripes and spirals. Written by David Bagley." +msgid "A cellular automaton that starts with a random field, and organizes it into stripes and spirals. Written by David Bagley." msgstr "" #: hacks/config/demon.xml.h:3 @@ -3283,9 +3940,7 @@ msgid "Discrete" msgstr "" #: hacks/config/discrete.xml.h:5 -msgid "" -"More ``discrete map'' systems, including new variants of Hopalong and Julia, " -"and a few others. Written by Tim Auckland." +msgid "More ``discrete map'' systems, including new variants of Hopalong and Julia, and a few others. Written by Tim Auckland." msgstr "" #: hacks/config/distort.xml.h:1 @@ -3298,39 +3953,40 @@ msgstr "" #: hacks/config/distort.xml.h:3 msgid "Distort" -msgstr "" +msgstr "Distorcer" #: hacks/config/distort.xml.h:6 msgid "Lens Count" -msgstr "" +msgstr "Quantidade de Lentes" #: hacks/config/distort.xml.h:7 msgid "Lens Size" -msgstr "" +msgstr "Tamanho da Lente" #: hacks/config/distort.xml.h:8 msgid "Magnify" -msgstr "" +msgstr "Aumentar" #: hacks/config/distort.xml.h:10 msgid "Reflect" -msgstr "" +msgstr "Refletir" #: hacks/config/distort.xml.h:14 msgid "Swamp Thing" msgstr "" #: hacks/config/distort.xml.h:15 -msgid "" -"This hack grabs an image of the screen, and then lets a transparent lens " -"wander around the screen, magnifying whatever is underneath. Written by " -"Jonas Munsin." +msgid "This hack grabs an image of the screen, and then lets a transparent lens wander around the screen, magnifying whatever is underneath. Written by Jonas Munsin." msgstr "" -#: hacks/config/distort.xml.h:16 hacks/config/moire.xml.h:12 -#: hacks/config/rd-bomb.xml.h:21 hacks/config/ripples.xml.h:16 -#: hacks/config/rotzoomer.xml.h:10 hacks/config/swirl.xml.h:10 -#: hacks/config/twang.xml.h:15 hacks/config/xflame.xml.h:7 +#: hacks/config/distort.xml.h:16 +#: hacks/config/moire.xml.h:12 +#: hacks/config/rd-bomb.xml.h:21 +#: hacks/config/ripples.xml.h:16 +#: hacks/config/rotzoomer.xml.h:10 +#: hacks/config/swirl.xml.h:10 +#: hacks/config/twang.xml.h:15 +#: hacks/config/xflame.xml.h:7 msgid "Use Shared Memory" msgstr "" @@ -3351,10 +4007,7 @@ msgid "High Dimensional Sphere" msgstr "" #: hacks/config/drift.xml.h:6 -msgid "" -"How could one possibly describe this except as ``drifting recursive fractal " -"cosmic flames?'' Another fine hack from the Scott Draves collection of fine " -"hacks." +msgid "How could one possibly describe this except as ``drifting recursive fractal cosmic flames?'' Another fine hack from the Scott Draves collection of fine hacks." msgstr "" #: hacks/config/drift.xml.h:7 @@ -3382,14 +4035,7 @@ msgid "ElectricSheep" msgstr "" #: hacks/config/electricsheep.xml.h:6 -msgid "" -"ElectricSheep is an xscreensaver module that displays mpeg video of an " -"animated fractal flame. In the background, it contributes render cycles to " -"the next animation. Periodically it uploades completed frames to the server, " -"where they are compressed for distribution to all clients. This program is " -"recommended only if you have a high bandwidth, always-on connection to the " -"Internet. By Scott Draves. You can find it at <http://www.electricsheep." -"org/>." +msgid "ElectricSheep is an xscreensaver module that displays mpeg video of an animated fractal flame. In the background, it contributes render cycles to the next animation. Periodically it uploades completed frames to the server, where they are compressed for distribution to all clients. This program is recommended only if you have a high bandwidth, always-on connection to the Internet. By Scott Draves. You can find it at <http://www.electricsheep.org/>." msgstr "" #: hacks/config/electricsheep.xml.h:8 @@ -3416,16 +4062,16 @@ msgstr "" msgid "Unlimited" msgstr "" -#: hacks/config/electricsheep.xml.h:14 hacks/config/gleidescope.xml.h:13 -#: hacks/config/hyperball.xml.h:16 hacks/config/hypercube.xml.h:16 +#: hacks/config/electricsheep.xml.h:14 +#: hacks/config/gleidescope.xml.h:13 +#: hacks/config/hyperball.xml.h:16 +#: hacks/config/hypercube.xml.h:16 #: hacks/config/zoom.xml.h:8 msgid "Zoom" msgstr "" #: hacks/config/endgame.xml.h:1 -msgid "" -"Black slips out of three mating nets, but the fourth one holds him tight! A " -"brilliant composition! Written by Blair Tennessy." +msgid "Black slips out of three mating nets, but the fourth one holds him tight! A brilliant composition! Written by Blair Tennessy." msgstr "" #: hacks/config/endgame.xml.h:2 @@ -3453,9 +4099,7 @@ msgid "Dodge Viper (10 cylinders, V)" msgstr "" #: hacks/config/engine.xml.h:6 -msgid "" -"Draws a simple model of an engine that floats around the screen. Written by " -"Ben Buxton and Ed Beroset." +msgid "Draws a simple model of an engine that floats around the screen. Written by Ben Buxton and Ed Beroset." msgstr "" #: hacks/config/engine.xml.h:7 @@ -3494,7 +4138,8 @@ msgstr "" msgid "1 minute" msgstr "" -#: hacks/config/epicycle.xml.h:2 hacks/config/polyhedra.xml.h:1 +#: hacks/config/epicycle.xml.h:2 +#: hacks/config/polyhedra.xml.h:1 msgid "1 second" msgstr "" @@ -3507,11 +4152,7 @@ msgid "Harmonics" msgstr "" #: hacks/config/epicycle.xml.h:12 -msgid "" -"This program draws the path traced out by a point on the edge of a circle. " -"That circle rotates around a point on the rim of another circle, and so on, " -"several times. These were the basis for the pre-heliocentric model of " -"planetary motion. Written by James Youngman." +msgid "This program draws the path traced out by a point on the edge of a circle. That circle rotates around a point on the rim of another circle, and so on, several times. These were the basis for the pre-heliocentric model of planetary motion. Written by James Youngman." msgstr "" #: hacks/config/eruption.xml.h:1 @@ -3526,8 +4167,10 @@ msgstr "" msgid "Eruption" msgstr "" -#: hacks/config/eruption.xml.h:7 hacks/config/fluidballs.xml.h:9 -#: hacks/config/qix.xml.h:9 hacks/config/speedmine.xml.h:4 +#: hacks/config/eruption.xml.h:7 +#: hacks/config/fluidballs.xml.h:9 +#: hacks/config/qix.xml.h:9 +#: hacks/config/speedmine.xml.h:4 msgid "Gravity" msgstr "" @@ -3563,7 +4206,8 @@ msgstr "" msgid "Euler2d" msgstr "" -#: hacks/config/euler2d.xml.h:10 hacks/config/whirlwindwarp.xml.h:5 +#: hacks/config/euler2d.xml.h:10 +#: hacks/config/whirlwindwarp.xml.h:5 msgid "Particles" msgstr "" @@ -3572,16 +4216,11 @@ msgid "Power" msgstr "" #: hacks/config/euler2d.xml.h:13 -msgid "" -"Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by " -"Stephen Montgomery-Smith." +msgid "Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by Stephen Montgomery-Smith." msgstr "" #: hacks/config/extrusion.xml.h:1 -msgid "" -"Draws various rotating extruded shapes that twist around, lengthen, and turn " -"inside out. Created by David Konerding from the samples that come with the " -"GL Extrusion library by Linas Vepstas." +msgid "Draws various rotating extruded shapes that twist around, lengthen, and turn inside out. Created by David Konerding from the samples that come with the GL Extrusion library by Linas Vepstas." msgstr "" #: hacks/config/extrusion.xml.h:2 @@ -3604,7 +4243,8 @@ msgstr "" msgid "Join Offset" msgstr "" -#: hacks/config/extrusion.xml.h:8 hacks/config/polytopes.xml.h:16 +#: hacks/config/extrusion.xml.h:8 +#: hacks/config/polytopes.xml.h:16 msgid "Random Object" msgstr "" @@ -3624,19 +4264,19 @@ msgstr "" msgid "Twistoid" msgstr "" -#: hacks/config/extrusion.xml.h:17 hacks/config/glplanet.xml.h:12 +#: hacks/config/extrusion.xml.h:17 +#: hacks/config/glplanet.xml.h:12 #: hacks/config/pulsar.xml.h:19 msgid "Use Flat Coloring" msgstr "" -#: hacks/config/extrusion.xml.h:18 hacks/config/glplanet.xml.h:13 +#: hacks/config/extrusion.xml.h:18 +#: hacks/config/glplanet.xml.h:13 msgid "Use Lighting" msgstr "" #: hacks/config/fadeplot.xml.h:2 -msgid "" -"Draws what looks like a waving ribbon following a sinusoidal path. Written " -"by Bas van Gaalen and Charles Vidal." +msgid "Draws what looks like a waving ribbon following a sinusoidal path. Written by Bas van Gaalen and Charles Vidal." msgstr "" #: hacks/config/fadeplot.xml.h:3 @@ -3664,12 +4304,7 @@ msgid "10 times" msgstr "" #: hacks/config/fireflies.xml.h:2 -msgid "" -"A bunch of fireflies chase a few baits around the screen, leaving colorful " -"tails which get blown around by the wind. Written by Matt Perry. This " -"program is not included with the XScreenSaver package, but if you don't have " -"it already, you can find it at <http://somewhere.fscked.org/fireflies/" -">." +msgid "A bunch of fireflies chase a few baits around the screen, leaving colorful tails which get blown around by the wind. Written by Matt Perry. This program is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://somewhere.fscked.org/fireflies/>." msgstr "" #: hacks/config/fireflies.xml.h:3 @@ -3728,7 +4363,8 @@ msgstr "" msgid "Half" msgstr "" -#: hacks/config/fireflies.xml.h:18 hacks/config/fluidballs.xml.h:10 +#: hacks/config/fireflies.xml.h:18 +#: hacks/config/fluidballs.xml.h:10 msgid "Hurricane" msgstr "" @@ -3788,7 +4424,8 @@ msgstr "" msgid "Split a swarm" msgstr "" -#: hacks/config/fireflies.xml.h:36 hacks/config/fluidballs.xml.h:21 +#: hacks/config/fireflies.xml.h:36 +#: hacks/config/fluidballs.xml.h:21 #: hacks/config/glforestfire.xml.h:16 msgid "Still" msgstr "" @@ -3817,7 +4454,8 @@ msgstr "" msgid "Wide" msgstr "" -#: hacks/config/fireflies.xml.h:45 hacks/config/fluidballs.xml.h:23 +#: hacks/config/fireflies.xml.h:45 +#: hacks/config/fluidballs.xml.h:23 msgid "Wind" msgstr "" @@ -3825,7 +4463,8 @@ msgstr "" msgid "Wind picks up" msgstr "" -#: hacks/config/fireworkx.xml.h:1 hacks/config/lavalite.xml.h:3 +#: hacks/config/fireworkx.xml.h:1 +#: hacks/config/lavalite.xml.h:3 msgid "Activity" msgstr "" @@ -3838,10 +4477,7 @@ msgid "Light Flash" msgstr "" #: hacks/config/fireworkx.xml.h:6 -msgid "" -"Pyrotechnics simulation eye-candy, MMX optimized. Turn off Light for speed. " -"Clicks on the preview window Explodes..! Written by Rony B Chandran. http://" -"www.ronybc.8k.com" +msgid "Pyrotechnics simulation eye-candy, MMX optimized. Turn off Light for speed. Clicks on the preview window Explodes..! Written by Rony B Chandran. http://www.ronybc.8k.com" msgstr "" #: hacks/config/fireworkx.xml.h:7 @@ -3865,21 +4501,20 @@ msgid "Text for Flag" msgstr "" #: hacks/config/flag.xml.h:11 -msgid "" -"This draws a waving colored flag, that undulates its way around the screen. " -"The trick is the flag can contain arbitrary text and images. By default, it " -"displays either the current system name and OS type, or a picture of " -"``Bob,'' but you can replace the text or the image with a command-line " -"option. Written by Charles Vidal and Jamie Zawinski." +msgid "This draws a waving colored flag, that undulates its way around the screen. The trick is the flag can contain arbitrary text and images. By default, it displays either the current system name and OS type, or a picture of ``Bob,'' but you can replace the text or the image with a command-line option. Written by Charles Vidal and Jamie Zawinski." msgstr "" -#: hacks/config/flame.xml.h:1 hacks/config/jigsaw.xml.h:1 -#: hacks/config/maze.xml.h:1 hacks/config/wander.xml.h:1 +#: hacks/config/flame.xml.h:1 +#: hacks/config/jigsaw.xml.h:1 +#: hacks/config/maze.xml.h:1 +#: hacks/config/wander.xml.h:1 msgid "0 Seconds" msgstr "" -#: hacks/config/flame.xml.h:2 hacks/config/gleidescope.xml.h:1 -#: hacks/config/glslideshow.xml.h:2 hacks/config/maze.xml.h:2 +#: hacks/config/flame.xml.h:2 +#: hacks/config/gleidescope.xml.h:1 +#: hacks/config/glslideshow.xml.h:2 +#: hacks/config/maze.xml.h:2 #: hacks/config/mirrorblob.xml.h:1 msgid "10 Seconds" msgstr "" @@ -3888,7 +4523,8 @@ msgstr "" msgid "Another iterative fractal generator. Written by Scott Draves." msgstr "" -#: hacks/config/flame.xml.h:4 hacks/config/jigglypuff.xml.h:4 +#: hacks/config/flame.xml.h:4 +#: hacks/config/jigglypuff.xml.h:4 msgid "Complexity" msgstr "" @@ -3905,9 +4541,7 @@ msgid "FlipFlop" msgstr "" #: hacks/config/flipflop.xml.h:3 -msgid "" -"Flipflop draws a grid of 3D colored tiles that change positions with each " -"other. Written by Kevin Ogden." +msgid "Flipflop draws a grid of 3D colored tiles that change positions with each other. Written by Kevin Ogden." msgstr "" #: hacks/config/flipflop.xml.h:6 @@ -3919,36 +4553,34 @@ msgid "Flipscreen3d" msgstr "" #: hacks/config/flipscreen3d.xml.h:3 -msgid "" -"Grabs an image of the desktop, turns it into a GL texture map, and spins it " -"around and deforms it in various ways. Written by Ben Buxton." +msgid "Grabs an image of the desktop, turns it into a GL texture map, and spins it around and deforms it in various ways. Written by Ben Buxton." msgstr "" -#: hacks/config/fliptext.xml.h:1 hacks/config/starwars.xml.h:3 +#: hacks/config/fliptext.xml.h:1 +#: hacks/config/starwars.xml.h:3 msgid "Centered Text" msgstr "" #: hacks/config/fliptext.xml.h:2 -msgid "" -"Draws successive pages of text. The lines flip in and out in a soothing 3D " -"pattern. The text can be the output of a program or the contents of a file " -"or URL, as configured on the \"Advanced\" tab of the main Screensaver " -"Preferences window. Written by Jamie Zawinski." +msgid "Draws successive pages of text. The lines flip in and out in a soothing 3D pattern. The text can be the output of a program or the contents of a file or URL, as configured on the \"Advanced\" tab of the main Screensaver Preferences window. Written by Jamie Zawinski." msgstr "" #: hacks/config/fliptext.xml.h:4 msgid "FlipText" msgstr "" -#: hacks/config/fliptext.xml.h:5 hacks/config/starwars.xml.h:7 +#: hacks/config/fliptext.xml.h:5 +#: hacks/config/starwars.xml.h:7 msgid "Flush Left Text" msgstr "" -#: hacks/config/fliptext.xml.h:6 hacks/config/starwars.xml.h:8 +#: hacks/config/fliptext.xml.h:6 +#: hacks/config/starwars.xml.h:8 msgid "Flush Right Text" msgstr "" -#: hacks/config/fliptext.xml.h:7 hacks/config/starwars.xml.h:9 +#: hacks/config/fliptext.xml.h:7 +#: hacks/config/starwars.xml.h:9 msgid "Font Point Size" msgstr "" @@ -3956,11 +4588,13 @@ msgstr "" msgid "Random Text Alignment" msgstr "" -#: hacks/config/fliptext.xml.h:15 hacks/config/starwars.xml.h:15 +#: hacks/config/fliptext.xml.h:15 +#: hacks/config/starwars.xml.h:15 msgid "Text Columns" msgstr "" -#: hacks/config/fliptext.xml.h:16 hacks/config/starwars.xml.h:16 +#: hacks/config/fliptext.xml.h:16 +#: hacks/config/starwars.xml.h:16 msgid "Text Lines" msgstr "" @@ -3973,9 +4607,7 @@ msgid "Length of trails" msgstr "" #: hacks/config/flow.xml.h:13 -msgid "" -"Strange attractors formed of flows in a 3D differential equation phase " -"space. Written by Tim Auckland." +msgid "Strange attractors formed of flows in a 3D differential equation phase space. Written by Tim Auckland." msgstr "" #: hacks/config/flow.xml.h:16 @@ -4014,7 +4646,8 @@ msgstr "" msgid "FluidBalls" msgstr "" -#: hacks/config/fluidballs.xml.h:8 hacks/config/twang.xml.h:4 +#: hacks/config/fluidballs.xml.h:8 +#: hacks/config/twang.xml.h:4 msgid "Friction" msgstr "" @@ -4023,11 +4656,7 @@ msgid "Jupiter" msgstr "" #: hacks/config/fluidballs.xml.h:14 -msgid "" -"Models the physics of bouncing balls, or of particles in a gas or fluid, " -"depending on the settings. If \"Shake Box\" is selected, then every now and " -"then, the box will be rotated, changing which direction is down (in order to " -"keep the settled balls in motion.) By Peter Birtles and Jamie Zawinski." +msgid "Models the physics of bouncing balls, or of particles in a gas or fluid, depending on the settings. If \"Shake Box\" is selected, then every now and then, the box will be rotated, changing which direction is down (in order to keep the settled balls in motion.) By Peter Birtles and Jamie Zawinski." msgstr "" #: hacks/config/fluidballs.xml.h:15 @@ -4071,18 +4700,11 @@ msgid "RGB" msgstr "" #: hacks/config/flurry.xml.h:10 -msgid "" -"This port of the OSX screensaver of the same name draws a colourful star" -"(fish)like flurry of particles. xscreensaver port by Tobias Sargeant <" -"tobias.sargeant@bigpond.com> Original Mac version by Calum Robinson <" -"calumr@mac.com> http://homepage.mac.com/calumr" +msgid "This port of the OSX screensaver of the same name draws a colourful star(fish)like flurry of particles. xscreensaver port by Tobias Sargeant <tobias.sargeant@bigpond.com> Original Mac version by Calum Robinson <calumr@mac.com> http://homepage.mac.com/calumr" msgstr "" #: hacks/config/flyingtoasters.xml.h:1 -msgid "" -"A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by " -"the ancient Berkeley Systems After Dark flying toasters. By Jamie Zawinski " -"and Baconmonkey." +msgid "A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by the ancient Berkeley Systems After Dark flying toasters. By Jamie Zawinski and Baconmonkey." msgstr "" #: hacks/config/flyingtoasters.xml.h:2 @@ -4097,9 +4719,12 @@ msgstr "" msgid "Flying Toasters" msgstr "" -#: hacks/config/flyingtoasters.xml.h:7 hacks/config/glslideshow.xml.h:17 -#: hacks/config/jigglypuff.xml.h:12 hacks/config/juggle.xml.h:5 -#: hacks/config/mirrorblob.xml.h:15 hacks/config/pipes.xml.h:10 +#: hacks/config/flyingtoasters.xml.h:7 +#: hacks/config/glslideshow.xml.h:17 +#: hacks/config/jigglypuff.xml.h:12 +#: hacks/config/juggle.xml.h:5 +#: hacks/config/mirrorblob.xml.h:15 +#: hacks/config/pipes.xml.h:10 msgid "None" msgstr "" @@ -4140,12 +4765,7 @@ msgid "Pages of text" msgstr "" #: hacks/config/fontglide.xml.h:11 -msgid "" -"Puts text on the screen using large characters that glide in from the edges, " -"assemble, then disperse. Alternately, it can simply scroll whole sentences " -"from right to left. The text can be the output of a program or the contents " -"of a file or URL, as configured on the \"Advanced\" tab of the main " -"Screensaver Preferences window. Written Jamie Zawinski." +msgid "Puts text on the screen using large characters that glide in from the edges, assemble, then disperse. Alternately, it can simply scroll whole sentences from right to left. The text can be the output of a program or the contents of a file or URL, as configured on the \"Advanced\" tab of the main Screensaver Preferences window. Written Jamie Zawinski." msgstr "" #: hacks/config/fontglide.xml.h:14 @@ -4156,14 +4776,13 @@ msgstr "" msgid "Vapor Trails" msgstr "" -#: hacks/config/forest.xml.h:2 hacks/config/glforestfire.xml.h:6 +#: hacks/config/forest.xml.h:2 +#: hacks/config/glforestfire.xml.h:6 msgid "Forest" msgstr "" #: hacks/config/forest.xml.h:7 -msgid "" -"This draws fractal trees. Written by Peter Baumung. Everybody loves " -"fractals, right?" +msgid "This draws fractal trees. Written by Peter Baumung. Everybody loves fractals, right?" msgstr "" #: hacks/config/fuzzyflakes.xml.h:2 @@ -4182,7 +4801,8 @@ msgstr "" msgid "FuzzyFlakes" msgstr "" -#: hacks/config/fuzzyflakes.xml.h:11 hacks/config/xspirograph.xml.h:4 +#: hacks/config/fuzzyflakes.xml.h:11 +#: hacks/config/xspirograph.xml.h:4 msgid "Layers" msgstr "" @@ -4199,10 +4819,7 @@ msgid "Rotate Viewpoint" msgstr "" #: hacks/config/galaxy.xml.h:13 -msgid "" -"This draws spinning galaxies, which then collide and scatter their stars to " -"the, uh, four winds or something. Originally an Amiga program by Uli " -"Siegmund." +msgid "This draws spinning galaxies, which then collide and scatter their stars to the, uh, four winds or something. Originally an Amiga program by Uli Siegmund." msgstr "" #: hacks/config/gears.xml.h:3 @@ -4213,15 +4830,13 @@ msgstr "" msgid "Planetary Gear System" msgstr "" -#: hacks/config/gears.xml.h:5 hacks/config/goop.xml.h:9 +#: hacks/config/gears.xml.h:5 +#: hacks/config/goop.xml.h:9 msgid "Rotational Speed" msgstr "" #: hacks/config/gears.xml.h:9 -msgid "" -"This draws sets of turning, interlocking gears, rotating in three " -"dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie " -"Zawinski." +msgid "This draws sets of turning, interlocking gears, rotating in three dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie Zawinski." msgstr "" #: hacks/config/gears.xml.h:10 @@ -4233,9 +4848,7 @@ msgid "Checkerboard" msgstr "" #: hacks/config/gflux.xml.h:5 -msgid "" -"Draws a rippling waves on a rotating wireframe grid, using GL. Written by " -"Josiah Pease." +msgid "Draws a rippling waves on a rotating wireframe grid, using GL. Written by Josiah Pease." msgstr "" #: hacks/config/gflux.xml.h:7 @@ -4251,15 +4864,16 @@ msgid "Mesh Density" msgstr "" #: hacks/config/gflux.xml.h:10 -#, fuzzy msgid "Screen Image" -msgstr "Propriedades da proteo de tela" +msgstr "Imagem da Tela" -#: hacks/config/gflux.xml.h:14 hacks/config/interference.xml.h:21 +#: hacks/config/gflux.xml.h:14 +#: hacks/config/interference.xml.h:21 msgid "Wave Speed" msgstr "" -#: hacks/config/gflux.xml.h:15 hacks/config/glmatrix.xml.h:20 +#: hacks/config/gflux.xml.h:15 +#: hacks/config/glmatrix.xml.h:20 msgid "Waves" msgstr "" @@ -4276,25 +4890,17 @@ msgid "GLBlur" msgstr "" #: hacks/config/glblur.xml.h:17 -msgid "" -"This program draws a box and a few line segments, and generates a radial " -"blur outward from it. This creates flowing field effects. This is done by " -"rendering the scene into a small texture, then repeatedly rendering " -"increasingly-enlarged and increasingly-transparent versions of that texture " -"onto the frame buffer. As such, it's quite graphics intensive: don't bother " -"trying to run this if you don't have hardware-accelerated OpenGL texture " -"support. It will hurt your machine bad." +msgid "This program draws a box and a few line segments, and generates a radial blur outward from it. This creates flowing field effects. This is done by rendering the scene into a small texture, then repeatedly rendering increasingly-enlarged and increasingly-transparent versions of that texture onto the frame buffer. As such, it's quite graphics intensive: don't bother trying to run this if you don't have hardware-accelerated OpenGL texture support. It will hurt your machine bad." msgstr "" -#: hacks/config/gleidescope.xml.h:2 hacks/config/glslideshow.xml.h:6 +#: hacks/config/gleidescope.xml.h:2 +#: hacks/config/glslideshow.xml.h:6 #: hacks/config/mirrorblob.xml.h:3 msgid "5 Minutes" msgstr "" #: hacks/config/gleidescope.xml.h:3 -msgid "" -"An OpenGL kaleidescope that operates on your desktop image, or on image " -"files loaded from disk. Written by andrew dean." +msgid "An OpenGL kaleidescope that operates on your desktop image, or on image files loaded from disk. Written by andrew dean." msgstr "" #: hacks/config/gleidescope.xml.h:4 @@ -4322,14 +4928,11 @@ msgid "Desert" msgstr "" #: hacks/config/glforestfire.xml.h:3 -msgid "" -"Draws an animation of sprinkling fire-like 3D triangles in a landscape " -"filled with trees. Requires OpenGL, and a machine with fast hardware support " -"for texture maps. Written by Eric Lassauge <lassauge@users.sourceforge." -"net>." +msgid "Draws an animation of sprinkling fire-like 3D triangles in a landscape filled with trees. Requires OpenGL, and a machine with fast hardware support for texture maps. Written by Eric Lassauge <lassauge@users.sourceforge.net>." msgstr "" -#: hacks/config/glforestfire.xml.h:5 hacks/config/glmatrix.xml.h:9 +#: hacks/config/glforestfire.xml.h:5 +#: hacks/config/glmatrix.xml.h:9 msgid "Fog" msgstr "" @@ -4378,10 +4981,7 @@ msgid "Number of Disks" msgstr "" #: hacks/config/glhanoi.xml.h:9 -msgid "" -"Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, " -"one disk at a time, with no disk ever resting on a disk smaller than itself. " -"Written by Dave Atkinson." +msgid "Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, one disk at a time, with no disk ever resting on a disk smaller than itself. Written by Dave Atkinson." msgstr "" #: hacks/config/glknots.xml.h:4 @@ -4389,12 +4989,11 @@ msgid "GLKnots" msgstr "" #: hacks/config/glknots.xml.h:5 -msgid "" -"Generates some twisting 3d knot patterns. Spins 'em around. Written by Jamie " -"Zawinski." +msgid "Generates some twisting 3d knot patterns. Spins 'em around. Written by Jamie Zawinski." msgstr "" -#: hacks/config/glknots.xml.h:7 hacks/config/lavalite.xml.h:17 +#: hacks/config/glknots.xml.h:7 +#: hacks/config/lavalite.xml.h:17 #: hacks/config/spheremonics.xml.h:9 msgid "Resolution" msgstr "" @@ -4403,12 +5002,15 @@ msgstr "" msgid "Segmented" msgstr "" -#: hacks/config/glknots.xml.h:18 hacks/config/lavalite.xml.h:28 +#: hacks/config/glknots.xml.h:18 +#: hacks/config/lavalite.xml.h:28 #: hacks/config/xmountains.xml.h:25 +#, fuzzy msgid "Smooth" -msgstr "" +msgstr "Suave" -#: hacks/config/glmatrix.xml.h:2 hacks/config/xmatrix.xml.h:1 +#: hacks/config/glmatrix.xml.h:2 +#: hacks/config/xmatrix.xml.h:1 msgid "Binary Encoding" msgstr "" @@ -4425,18 +5027,15 @@ msgid "Draw Solid Boxes" msgstr "" #: hacks/config/glmatrix.xml.h:7 -msgid "" -"Draws 3D dropping characters similar to what is seen in the title sequence " -"of \"The Matrix\". See also \"xmatrix\" for a 2D rendering of the similar " -"effect that appeared on the computer monitors actually *in* the movie. " -"Written by Jamie Zawinski." +msgid "Draws 3D dropping characters similar to what is seen in the title sequence of \"The Matrix\". See also \"xmatrix\" for a 2D rendering of the similar effect that appeared on the computer monitors actually *in* the movie. Written by Jamie Zawinski." msgstr "" #: hacks/config/glmatrix.xml.h:10 msgid "GLMatrix" msgstr "" -#: hacks/config/glmatrix.xml.h:11 hacks/config/xmatrix.xml.h:7 +#: hacks/config/glmatrix.xml.h:11 +#: hacks/config/xmatrix.xml.h:7 msgid "Genetic Encoding" msgstr "" @@ -4448,11 +5047,13 @@ msgstr "" msgid "Glyph Speed" msgstr "" -#: hacks/config/glmatrix.xml.h:14 hacks/config/xmatrix.xml.h:8 +#: hacks/config/glmatrix.xml.h:14 +#: hacks/config/xmatrix.xml.h:8 msgid "Hexadecimal Encoding" msgstr "" -#: hacks/config/glmatrix.xml.h:15 hacks/config/xmatrix.xml.h:11 +#: hacks/config/glmatrix.xml.h:15 +#: hacks/config/xmatrix.xml.h:11 msgid "Matrix Encoding" msgstr "" @@ -4461,11 +5062,7 @@ msgid "Panning" msgstr "" #: hacks/config/glplanet.xml.h:1 -msgid "" -"Draws a planet bouncing around in space. Written by David Konerding. The " -"built-in image is a map of the earth (extracted from `xearth'), but you can " -"wrap any texture around the sphere, e.g., the planetary textures that come " -"with `ssystem'." +msgid "Draws a planet bouncing around in space. Written by David Konerding. The built-in image is a map of the earth (extracted from `xearth'), but you can wrap any texture around the sphere, e.g., the planetary textures that come with `ssystem'." msgstr "" #: hacks/config/glplanet.xml.h:3 @@ -4480,13 +5077,16 @@ msgstr "" msgid "Roll" msgstr "" -#: hacks/config/glslideshow.xml.h:4 hacks/config/rd-bomb.xml.h:5 -#: hacks/config/substrate.xml.h:4 hacks/config/xplanet.xml.h:4 +#: hacks/config/glslideshow.xml.h:4 +#: hacks/config/rd-bomb.xml.h:5 +#: hacks/config/substrate.xml.h:4 +#: hacks/config/xplanet.xml.h:4 #, no-c-format msgid "100%" msgstr "" -#: hacks/config/glslideshow.xml.h:5 hacks/config/glsnake.xml.h:2 +#: hacks/config/glslideshow.xml.h:5 +#: hacks/config/glsnake.xml.h:2 #: hacks/config/mirrorblob.xml.h:2 msgid "30 Seconds" msgstr "" @@ -4500,35 +5100,29 @@ msgstr "" msgid "Always show at least this much of the image:" msgstr "" -#: hacks/config/glslideshow.xml.h:10 hacks/config/mirrorblob.xml.h:6 +#: hacks/config/glslideshow.xml.h:10 +#: hacks/config/mirrorblob.xml.h:6 msgid "Crossfade Duration:" msgstr "" #: hacks/config/glslideshow.xml.h:11 msgid "Frame Rate:" -msgstr "" +msgstr "Taxa de Quadros:" #: hacks/config/glslideshow.xml.h:12 msgid "GLSlideshow" msgstr "" #: hacks/config/glslideshow.xml.h:15 -msgid "" -"Loads a random sequence of images and smoothly scans and zooms around in " -"each, fading from pan to pan. To tell it where to find the images to " -"display, go to the \"Advanced\" tab on the Screensaver Preferences window. " -"Select \"Choose Random Images\", and enter your image directory in the text " -"field right below that. (Note: not the the \"Advanced\" button at the bottom " -"of this window: the tab at the top of the *other* window.) This program " -"requires a good video card capable of supporting large textures. Written by " -"Jamie Zawinski and Mike Oliphant." +msgid "Loads a random sequence of images and smoothly scans and zooms around in each, fading from pan to pan. To tell it where to find the images to display, go to the \"Advanced\" tab on the Screensaver Preferences window. Select \"Choose Random Images\", and enter your image directory in the text field right below that. (Note: not the the \"Advanced\" button at the bottom of this window: the tab at the top of the *other* window.) This program requires a good video card capable of supporting large textures. Written by Jamie Zawinski and Mike Oliphant." msgstr "" #: hacks/config/glslideshow.xml.h:18 msgid "Pan/Zoom Duration:" msgstr "" -#: hacks/config/glsnake.xml.h:1 hacks/config/lavalite.xml.h:1 +#: hacks/config/glsnake.xml.h:1 +#: hacks/config/lavalite.xml.h:1 msgid "1" msgstr "" @@ -4537,9 +5131,7 @@ msgid "Angular Velocity" msgstr "" #: hacks/config/glsnake.xml.h:4 -msgid "" -"Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, " -"Andrew Bennetts, and Peter Aylett." +msgid "Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, Andrew Bennetts, and Peter Aylett." msgstr "" #: hacks/config/glsnake.xml.h:7 @@ -4575,9 +5167,7 @@ msgid "Always face front" msgstr "" #: hacks/config/gltext.xml.h:2 -msgid "" -"Displays a few lines of text spinning around in a solid 3D font. Written by " -"Jamie Zawinski." +msgid "Displays a few lines of text spinning around in a solid 3D font. Written by Jamie Zawinski." msgstr "" #: hacks/config/gltext.xml.h:5 @@ -4592,7 +5182,8 @@ msgstr "" msgid "Spin all the way around" msgstr "" -#: hacks/config/gltext.xml.h:19 hacks/config/noseguy.xml.h:5 +#: hacks/config/gltext.xml.h:19 +#: hacks/config/noseguy.xml.h:5 msgid "Text" msgstr "" @@ -4601,9 +5192,7 @@ msgid "Goban" msgstr "" #: hacks/config/goban.xml.h:2 -msgid "" -"Replays historical games of go (aka wei-chi and baduk) on the screen. By " -"Scott Draves. You can find it at <http://www.draves.org/goban/>." +msgid "Replays historical games of go (aka wei-chi and baduk) on the screen. By Scott Draves. You can find it at <http://www.draves.org/goban/>." msgstr "" #: hacks/config/goop.xml.h:1 @@ -4635,14 +5224,7 @@ msgid "Subtractive Colors (transmitted light)" msgstr "" #: hacks/config/goop.xml.h:14 -msgid "" -"This draws set of animating, transparent, amoeba-like blobs. The blobs " -"change shape as they wander around the screen, and they are translucent, so " -"you can see the lower blobs through the higher ones, and when one passes " -"over another, their colors merge. I got the idea for this from a cool mouse " -"pad I have, which achieves the same kind of effect in real life by having " -"several layers plastic with colored oil between them. Written by Jamie " -"Zawinski." +msgid "This draws set of animating, transparent, amoeba-like blobs. The blobs change shape as they wander around the screen, and they are translucent, so you can see the lower blobs through the higher ones, and when one passes over another, their colors merge. I got the idea for this from a cool mouse pad I have, which achieves the same kind of effect in real life by having several layers plastic with colored oil between them. Written by Jamie Zawinski." msgstr "" #: hacks/config/goop.xml.h:15 @@ -4666,9 +5248,7 @@ msgid "Orbital Decay" msgstr "" #: hacks/config/grav.xml.h:10 -msgid "" -"This program draws a simple orbital simulation. If you turn on trails, it " -"looks kind of like a cloud-chamber photograph. Written by Greg Bowering." +msgid "This program draws a simple orbital simulation. If you turn on trails, it looks kind of like a cloud-chamber photograph. Written by Greg Bowering." msgstr "" #: hacks/config/greynetic.xml.h:2 @@ -4676,8 +5256,7 @@ msgid "Greynetic" msgstr "" #: hacks/config/greynetic.xml.h:5 -msgid "" -"This draws random colored and stippled rectangles. Written by Jamie Zawinski." +msgid "This draws random colored and stippled rectangles. Written by Jamie Zawinski." msgstr "" #: hacks/config/halftone.xml.h:1 @@ -4693,11 +5272,7 @@ msgid "Dot size" msgstr "" #: hacks/config/halftone.xml.h:4 -msgid "" -"Draws the gravity force in each point on the screen seen through a halftone " -"dot pattern. The gravity force is calculated from a set of moving mass " -"points. View it from a distance for best effect. Written by Peter Jaric <" -"peter@jaric.org>." +msgid "Draws the gravity force in each point on the screen seen through a halftone dot pattern. The gravity force is calculated from a set of moving mass points. View it from a distance for best effect. Written by Peter Jaric <peter@jaric.org>." msgstr "" #: hacks/config/halftone.xml.h:5 @@ -4745,10 +5320,7 @@ msgid "Seuss Mode" msgstr "" #: hacks/config/halo.xml.h:12 -msgid "" -"This draws trippy psychedelic circular patterns that hurt to look at. It can " -"also animate the control-points, but that takes a lot of CPU and bandwidth. " -"Written by Jamie Zawinski." +msgid "This draws trippy psychedelic circular patterns that hurt to look at. It can also animate the control-points, but that takes a lot of CPU and bandwidth. Written by Jamie Zawinski." msgstr "" #: hacks/config/helix.xml.h:4 @@ -4756,9 +5328,7 @@ msgid "Helix" msgstr "" #: hacks/config/helix.xml.h:5 -msgid "" -"This repeatedly generates spirally string-art-ish patterns. Written by Jamie " -"Zawinski." +msgid "This repeatedly generates spirally string-art-ish patterns. Written by Jamie Zawinski." msgstr "" #: hacks/config/hopalong.xml.h:3 @@ -4806,9 +5376,7 @@ msgid "Sine" msgstr "" #: hacks/config/hopalong.xml.h:24 -msgid "" -"This draws lacy fractal patterns, based on iteration in the imaginary plane, " -"from a 1986 Scientific American article. Mostly written by Patrick Naughton." +msgid "This draws lacy fractal patterns, based on iteration in the imaginary plane, from a 1986 Scientific American article. Mostly written by Patrick Naughton." msgstr "" #: hacks/config/hyperball.xml.h:4 @@ -4816,35 +5384,36 @@ msgid "Hyperball" msgstr "" #: hacks/config/hyperball.xml.h:5 -msgid "" -"Hyperball is to hypercube as dodecahedron is to cube: this displays a 2D " -"projection of the sequence of 3D objects which are the projections of the 4D " -"analog to the dodecahedron. Technically, it is a \"120 cell polytope.\" " -"Written by Joe Keane. See also the \"polytopes\" hack for a more general " -"version of this using OpenGL." +msgid "Hyperball is to hypercube as dodecahedron is to cube: this displays a 2D projection of the sequence of 3D objects which are the projections of the 4D analog to the dodecahedron. Technically, it is a \"120 cell polytope.\" Written by Joe Keane. See also the \"polytopes\" hack for a more general version of this using OpenGL." msgstr "" -#: hacks/config/hyperball.xml.h:10 hacks/config/hypercube.xml.h:10 +#: hacks/config/hyperball.xml.h:10 +#: hacks/config/hypercube.xml.h:10 msgid "XW Rotation" msgstr "" -#: hacks/config/hyperball.xml.h:11 hacks/config/hypercube.xml.h:11 +#: hacks/config/hyperball.xml.h:11 +#: hacks/config/hypercube.xml.h:11 msgid "XY Rotation" msgstr "" -#: hacks/config/hyperball.xml.h:12 hacks/config/hypercube.xml.h:12 +#: hacks/config/hyperball.xml.h:12 +#: hacks/config/hypercube.xml.h:12 msgid "XZ Rotation" msgstr "" -#: hacks/config/hyperball.xml.h:13 hacks/config/hypercube.xml.h:13 +#: hacks/config/hyperball.xml.h:13 +#: hacks/config/hypercube.xml.h:13 msgid "YW Rotation" msgstr "" -#: hacks/config/hyperball.xml.h:14 hacks/config/hypercube.xml.h:14 +#: hacks/config/hyperball.xml.h:14 +#: hacks/config/hypercube.xml.h:14 msgid "YZ Rotation" msgstr "" -#: hacks/config/hyperball.xml.h:15 hacks/config/hypercube.xml.h:15 +#: hacks/config/hyperball.xml.h:15 +#: hacks/config/hypercube.xml.h:15 msgid "ZW Rotation" msgstr "" @@ -4853,23 +5422,16 @@ msgid "Hypercube" msgstr "" #: hacks/config/hypercube.xml.h:9 -msgid "" -"This displays 2D projections of the sequence of 3D objects which are the " -"projections of the 4D analog to the cube: as a square is composed of four " -"lines, each touching two others; and a cube is composed of six squares, each " -"touching four others; a hypercube is composed of eight cubes, each touching " -"six others. To make it easier to visualize the rotation, it uses a different " -"color for the edges of each face. Don't think about it too long, or your " -"brain will melt. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski. " -"See also the \"polytopes\" hack for a more general version of this using " -"OpenGL." -msgstr "" - -#: hacks/config/hypertorus.xml.h:1 hacks/config/polytopes.xml.h:1 +msgid "This displays 2D projections of the sequence of 3D objects which are the projections of the 4D analog to the cube: as a square is composed of four lines, each touching two others; and a cube is composed of six squares, each touching four others; a hypercube is composed of eight cubes, each touching six others. To make it easier to visualize the rotation, it uses a different color for the edges of each face. Don't think about it too long, or your brain will melt. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski. See also the \"polytopes\" hack for a more general version of this using OpenGL." +msgstr "" + +#: hacks/config/hypertorus.xml.h:1 +#: hacks/config/polytopes.xml.h:1 msgid "-4.0" msgstr "" -#: hacks/config/hypertorus.xml.h:2 hacks/config/polytopes.xml.h:5 +#: hacks/config/hypertorus.xml.h:2 +#: hacks/config/polytopes.xml.h:5 msgid "4.0" msgstr "" @@ -4881,23 +5443,28 @@ msgstr "" msgid "Color Wheel" msgstr "" -#: hacks/config/hypertorus.xml.h:5 hacks/config/polytopes.xml.h:10 +#: hacks/config/hypertorus.xml.h:5 +#: hacks/config/polytopes.xml.h:10 msgid "Display Speed" msgstr "" -#: hacks/config/hypertorus.xml.h:7 hacks/config/polytopes.xml.h:12 +#: hacks/config/hypertorus.xml.h:7 +#: hacks/config/polytopes.xml.h:12 msgid "Orthographic 3d" msgstr "" -#: hacks/config/hypertorus.xml.h:8 hacks/config/polytopes.xml.h:13 +#: hacks/config/hypertorus.xml.h:8 +#: hacks/config/polytopes.xml.h:13 msgid "Orthographic 4d" msgstr "" -#: hacks/config/hypertorus.xml.h:9 hacks/config/polytopes.xml.h:14 +#: hacks/config/hypertorus.xml.h:9 +#: hacks/config/polytopes.xml.h:14 msgid "Perspective 3d" msgstr "" -#: hacks/config/hypertorus.xml.h:10 hacks/config/polytopes.xml.h:15 +#: hacks/config/hypertorus.xml.h:10 +#: hacks/config/polytopes.xml.h:15 msgid "Perspective 4d" msgstr "" @@ -4929,20 +5496,19 @@ msgstr "" msgid "Solid Object" msgstr "" -#: hacks/config/hypertorus.xml.h:20 hacks/config/mirrorblob.xml.h:19 -#: hacks/config/polytopes.xml.h:21 hacks/config/pulsar.xml.h:16 +#: hacks/config/hypertorus.xml.h:20 +#: hacks/config/mirrorblob.xml.h:19 +#: hacks/config/polytopes.xml.h:21 +#: hacks/config/pulsar.xml.h:16 msgid "Solid Surface" msgstr "" #: hacks/config/hypertorus.xml.h:21 -msgid "" -"This program shows a rotating Clifford Torus: a torus lying on the \"surface" -"\" of a 4D hypersphere. Written by Carsten Steger, inspired by Thomas " -"Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, " -"and Higher Dimensions\", Scientific American Library, 1990." +msgid "This program shows a rotating Clifford Torus: a torus lying on the \"surface\" of a 4D hypersphere. Written by Carsten Steger, inspired by Thomas Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions\", Scientific American Library, 1990." msgstr "" -#: hacks/config/hypertorus.xml.h:22 hacks/config/polytopes.xml.h:23 +#: hacks/config/hypertorus.xml.h:22 +#: hacks/config/polytopes.xml.h:23 msgid "Transparent Surface" msgstr "" @@ -4950,31 +5516,38 @@ msgstr "" msgid "Two-Sided" msgstr "" -#: hacks/config/hypertorus.xml.h:24 hacks/config/polytopes.xml.h:24 +#: hacks/config/hypertorus.xml.h:24 +#: hacks/config/polytopes.xml.h:24 msgid "WX Rotation Speed" msgstr "" -#: hacks/config/hypertorus.xml.h:25 hacks/config/polytopes.xml.h:25 +#: hacks/config/hypertorus.xml.h:25 +#: hacks/config/polytopes.xml.h:25 msgid "WY Rotation Speed" msgstr "" -#: hacks/config/hypertorus.xml.h:26 hacks/config/polytopes.xml.h:26 +#: hacks/config/hypertorus.xml.h:26 +#: hacks/config/polytopes.xml.h:26 msgid "WZ Rotation Speed" msgstr "" -#: hacks/config/hypertorus.xml.h:27 hacks/config/polytopes.xml.h:27 +#: hacks/config/hypertorus.xml.h:27 +#: hacks/config/polytopes.xml.h:27 msgid "Wireframe Mesh" msgstr "" -#: hacks/config/hypertorus.xml.h:28 hacks/config/polytopes.xml.h:28 +#: hacks/config/hypertorus.xml.h:28 +#: hacks/config/polytopes.xml.h:28 msgid "XY Rotation Speed" msgstr "" -#: hacks/config/hypertorus.xml.h:29 hacks/config/polytopes.xml.h:29 +#: hacks/config/hypertorus.xml.h:29 +#: hacks/config/polytopes.xml.h:29 msgid "XZ Rotation Speed" msgstr "" -#: hacks/config/hypertorus.xml.h:30 hacks/config/polytopes.xml.h:30 +#: hacks/config/hypertorus.xml.h:30 +#: hacks/config/polytopes.xml.h:30 msgid "YZ Rotation Speed" msgstr "" @@ -5006,7 +5579,8 @@ msgstr "" msgid "Number of Colours" msgstr "" -#: hacks/config/ifs.xml.h:11 hacks/config/phosphor.xml.h:6 +#: hacks/config/ifs.xml.h:11 +#: hacks/config/phosphor.xml.h:6 msgid "Scale" msgstr "" @@ -5015,12 +5589,7 @@ msgid "Single" msgstr "" #: hacks/config/ifs.xml.h:15 -msgid "" -"This one draws spinning, colliding iterated-function-system images. Note " -"that the \"quality\" parameter is exponential. Number of points drawn is " -"functions^detail. The number of colours is only used in Blend mode to " -"provide a palette to create the base colours. These are then blended " -"together in a non-colourmap friendly fashion. Written by Chris Le Sueur." +msgid "This one draws spinning, colliding iterated-function-system images. Note that the \"quality\" parameter is exponential. Number of points drawn is functions^detail. The number of colours is only used in Blend mode to provide a palette to create the base colours. These are then blended together in a non-colourmap friendly fashion. Written by Chris Le Sueur." msgstr "" #: hacks/config/ifs.xml.h:16 @@ -5044,40 +5613,24 @@ msgid "Saturation Gradients" msgstr "" #: hacks/config/imsmap.xml.h:14 -msgid "" -"This generates random cloud-like patterns. It looks quite different in " -"monochrome and color. The basic idea is to take four points on the edge of " -"the image, and assign each a random ``elevation''. Then find the point " -"between them, and give it a value which is the average of the other four, " -"plus some small random offset. Then coloration is done based on elevation. " -"The color selection is done by binding the elevation to either hue, " -"saturation, or brightness, and assigning random values to the others. The " -"``brightness'' mode tends to yield cloudlike patterns, and the others tend " -"to generate images that look like heat-maps or CAT-scans. Written by Juergen " -"Nickelsen and Jamie Zawinski." +msgid "This generates random cloud-like patterns. It looks quite different in monochrome and color. The basic idea is to take four points on the edge of the image, and assign each a random ``elevation''. Then find the point between them, and give it a value which is the average of the other four, plus some small random offset. Then coloration is done based on elevation. The color selection is done by binding the elevation to either hue, saturation, or brightness, and assigning random values to the others. The ``brightness'' mode tends to yield cloudlike patterns, and the others tend to generate images that look like heat-maps or CAT-scans. Written by Juergen Nickelsen and Jamie Zawinski." msgstr "" #: hacks/config/interaggregate.xml.h:2 msgid "Interaggregate" msgstr "" -#: hacks/config/interaggregate.xml.h:3 hacks/config/intermomentary.xml.h:3 +#: hacks/config/interaggregate.xml.h:3 +#: hacks/config/intermomentary.xml.h:3 msgid "Number of Discs" msgstr "" #: hacks/config/interaggregate.xml.h:6 -msgid "" -"The Intersection Aggregate is a fun visualization defining the relationships " -"between objects with Casey Reas, William Ngan, and Robert Hodgin. " -"Commissioned for display at the Whitney Museum of American Art. A surface " -"filled with 100 medium to small sized circles. Each circle has a different " -"size and direction, but moves at the same slow rate. Display: A. The " -"instantaneous intersections of the circles. B. The aggregate intersections " -"of the circles. Ported to XScreensaver from the art project \"InterAggregate" -"\" at http://www.complexification.net" +msgid "The Intersection Aggregate is a fun visualization defining the relationships between objects with Casey Reas, William Ngan, and Robert Hodgin. Commissioned for display at the Whitney Museum of American Art. A surface filled with 100 medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Display: A. The instantaneous intersections of the circles. B. The aggregate intersections of the circles. Ported to XScreensaver from the art project \"InterAggregate\" at http://www.complexification.net" msgstr "" -#: hacks/config/interference.xml.h:1 hacks/config/rotzoomer.xml.h:1 +#: hacks/config/interference.xml.h:1 +#: hacks/config/rotzoomer.xml.h:1 msgid "0" msgstr "" @@ -5090,10 +5643,7 @@ msgid "Anim Speed" msgstr "" #: hacks/config/interference.xml.h:4 -msgid "" -"Another color-field hack, this one works by computing decaying sinusoidal " -"waves, and allowing them to interfere with each other as their origins move. " -"Written by Hannu Mallat." +msgid "Another color-field hack, this one works by computing decaying sinusoidal waves, and allowing them to interfere with each other as their origins move. Written by Hannu Mallat." msgstr "" #: hacks/config/interference.xml.h:9 @@ -5104,33 +5654,27 @@ msgstr "" msgid "Interference" msgstr "" -#: hacks/config/interference.xml.h:13 hacks/config/t3d.xml.h:9 -#: hacks/config/xearth.xml.h:11 hacks/config/zoom.xml.h:5 +#: hacks/config/interference.xml.h:13 +#: hacks/config/t3d.xml.h:9 +#: hacks/config/xearth.xml.h:11 +#: hacks/config/zoom.xml.h:5 msgid "Magnification" msgstr "" #: hacks/config/interference.xml.h:16 msgid "Number of Waves" -msgstr "" +msgstr "Número de Ondas" #: hacks/config/interference.xml.h:20 msgid "Wave Size" -msgstr "" +msgstr "Tamanho das Ondas" #: hacks/config/intermomentary.xml.h:2 msgid "Intermomentary" msgstr "" #: hacks/config/intermomentary.xml.h:6 -msgid "" -"The Intersection Momentary is a fun visualization defining the relationships " -"between objects with Casey Reas, William Ngan, and Robert Hodgin. " -"Commissioned for display at the Whitney Museum of American Art. A surface " -"filled with 100 medium to small sized circles. Each circle has a different " -"size and direction, but moves at the same slow rate. Display: A. The " -"instantaneous intersections of the circles. B. The aggregate intersections " -"of the circles. Ported to XScreensaver from the art project \"InterMomentary" -"\" at http://www.complexification.net" +msgid "The Intersection Momentary is a fun visualization defining the relationships between objects with Casey Reas, William Ngan, and Robert Hodgin. Commissioned for display at the Whitney Museum of American Art. A surface filled with 100 medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Display: A. The instantaneous intersections of the circles. B. The aggregate intersections of the circles. Ported to XScreensaver from the art project \"InterMomentary\" at http://www.complexification.net" msgstr "" #: hacks/config/jigglypuff.xml.h:2 @@ -5161,7 +5705,8 @@ msgstr "" msgid "Rotation speed" msgstr "" -#: hacks/config/jigglypuff.xml.h:17 hacks/config/sphere.xml.h:7 +#: hacks/config/jigglypuff.xml.h:17 +#: hacks/config/sphere.xml.h:7 msgid "Sphere" msgstr "" @@ -5177,25 +5722,14 @@ msgstr "" msgid "Spoooooky" msgstr "" -#: hacks/config/jigglypuff.xml.h:21 hacks/config/polyhedra.xml.h:148 +#: hacks/config/jigglypuff.xml.h:21 +#: hacks/config/polyhedra.xml.h:148 #: hacks/config/sballs.xml.h:16 msgid "Tetrahedron" msgstr "" #: hacks/config/jigglypuff.xml.h:22 -msgid "" -"This little gem does bad things with quasi-spherical objects. The gist of it " -"is that you have what is, structurally, a tetrahedron with tesselated faces. " -"the vertices on these faces have forces on them in the form of one " -"proportional to their distance from the surface of a sphere, and one which " -"is proportional to how far they differ from some ideal distance from their " -"neighbors. They also have inertia. The forces and distance are parameters " -"and there are also a couple of visual parameters. The resulting effect can " -"range from a shape that does nothing, to a frenetic polygon storm. Somewhere " -"in between there it usually manifests as a blob that jiggles in a kind of " -"disturbing manner. woo. It doesn't matter, however. You should just pick " -"'random'. It overrides all the other options, except for fps, delay and " -"complexity. By Keith Macleod" +msgid "This little gem does bad things with quasi-spherical objects. The gist of it is that you have what is, structurally, a tetrahedron with tesselated faces. the vertices on these faces have forces on them in the form of one proportional to their distance from the surface of a sphere, and one which is proportional to how far they differ from some ideal distance from their neighbors. They also have inertia. The forces and distance are parameters and there are also a couple of visual parameters. The resulting effect can range from a shape that does nothing, to a frenetic polygon storm. Somewhere in between there it usually manifests as a blob that jiggles in a kind of disturbing manner. woo. It doesn't matter, however. You should just pick 'random'. It overrides all the other options, except for fps, delay and complexity. By Keith Macleod" msgstr "" #: hacks/config/jigglypuff.xml.h:23 @@ -5231,13 +5765,7 @@ msgid "Solved Duration" msgstr "" #: hacks/config/jigsaw.xml.h:8 -msgid "" -"This grabs a screen image, carves it up into a jigsaw puzzle, shuffles it, " -"and then solves the puzzle. This works especially well when you feed it an " -"external video signal instead of letting it grab the screen image (actually, " -"I guess this is generally true...) When it is grabbing a video image, it is " -"sometimes pretty hard to guess what the image is going to look like once the " -"puzzle is solved. Written by Jamie Zawinski." +msgid "This grabs a screen image, carves it up into a jigsaw puzzle, shuffles it, and then solves the puzzle. This works especially well when you feed it an external video signal instead of letting it grab the screen image (actually, I guess this is generally true...) When it is grabbing a video image, it is sometimes pretty hard to guess what the image is going to look like once the puzzle is solved. Written by Jamie Zawinski." msgstr "" #: hacks/config/juggle.xml.h:1 @@ -5285,9 +5813,7 @@ msgid "turn on/off pattern descriptions." msgstr "" #: hacks/config/juggler3d.xml.h:1 -msgid "" -"3D simulation of a juggler performing with balls, clubs and rings. Written " -"by Brian Apps and partially based on his Win32 Juggle Saver program." +msgid "3D simulation of a juggler performing with balls, clubs and rings. Written by Brian Apps and partially based on his Win32 Juggle Saver program." msgstr "" #: hacks/config/juggler3d.xml.h:3 @@ -5322,7 +5848,8 @@ msgstr "" msgid "Min Objects" msgstr "" -#: hacks/config/julia.xml.h:3 hacks/config/rorschach.xml.h:4 +#: hacks/config/julia.xml.h:3 +#: hacks/config/rorschach.xml.h:4 msgid "Iterations" msgstr "" @@ -5331,28 +5858,19 @@ msgid "Julia" msgstr "" #: hacks/config/julia.xml.h:11 -msgid "" -"This one draws spinning, animating (are you detecting a pattern here yet?) " -"explorations of the Julia set. You've probably seen static images of this " -"fractal form before, but it's a lot of fun to watch in motion as well. One " -"interesting thing is that there is a small swinging dot passing in front of " -"the image, which indicates the control point from which the rest of the " -"image was generated. Written by Sean McCullough." +msgid "This one draws spinning, animating (are you detecting a pattern here yet?) explorations of the Julia set. You've probably seen static images of this fractal form before, but it's a lot of fun to watch in motion as well. One interesting thing is that there is a small swinging dot passing in front of the image, which indicates the control point from which the rest of the image was generated. Written by Sean McCullough." msgstr "" #: hacks/config/kaleidescope.xml.h:1 -msgid "" -"Another clone of an ancient meme, consisting largely of frenetic rotational " -"motion of colored lines. This one is by Ron Tapia. The motion is nice, but I " -"think it needs more solids, or perhaps just brighter colors. More variations " -"in the rotational speed might help, too." +msgid "Another clone of an ancient meme, consisting largely of frenetic rotational motion of colored lines. This one is by Ron Tapia. The motion is nice, but I think it needs more solids, or perhaps just brighter colors. More variations in the rotational speed might help, too." msgstr "" #: hacks/config/kaleidescope.xml.h:4 msgid "Kaleidescope" msgstr "" -#: hacks/config/kaleidescope.xml.h:6 hacks/config/qix.xml.h:18 +#: hacks/config/kaleidescope.xml.h:6 +#: hacks/config/qix.xml.h:18 msgid "Segments" msgstr "" @@ -5369,9 +5887,7 @@ msgid "Klein" msgstr "" #: hacks/config/klein.xml.h:10 -msgid "" -"This draws a visualization of a Klein bottle or some other interesting " -"parametric surfaces. Written by Andrey Mirtchovski." +msgid "This draws a visualization of a Klein bottle or some other interesting parametric surfaces. Written by Andrey Mirtchovski." msgstr "" #: hacks/config/klein.xml.h:11 @@ -5391,16 +5907,11 @@ msgid "Randomize" msgstr "" #: hacks/config/kumppa.xml.h:10 -msgid "" -"Spiraling, spinning, and very, very fast splashes of color rush toward the " -"screen. Written by Teemu Suutari." +msgid "Spiraling, spinning, and very, very fast splashes of color rush toward the screen. Written by Teemu Suutari." msgstr "" #: hacks/config/lament.xml.h:1 -msgid "" -"Animates a simulation of Lemarchand's Box, repeatedly solving itself. " -"Requires OpenGL, and a machine with fast hardware support for texture maps. " -"Warning: occasionally opens doors. Written by Jamie Zawinski." +msgid "Animates a simulation of Lemarchand's Box, repeatedly solving itself. Requires OpenGL, and a machine with fast hardware support for texture maps. Warning: occasionally opens doors. Written by Jamie Zawinski." msgstr "" #: hacks/config/lament.xml.h:3 @@ -5412,12 +5923,11 @@ msgid "Laser" msgstr "" #: hacks/config/laser.xml.h:7 -msgid "" -"Moving radiating lines, that look vaguely like scanning laser beams. Written " -"by Pascal Pensa. (Frankie say: relax.)" +msgid "Moving radiating lines, that look vaguely like scanning laser beams. Written by Pascal Pensa. (Frankie say: relax.)" msgstr "" -#: hacks/config/lavalite.xml.h:2 hacks/config/xmountains.xml.h:2 +#: hacks/config/lavalite.xml.h:2 +#: hacks/config/xmountains.xml.h:2 msgid "10" msgstr "" @@ -5430,15 +5940,7 @@ msgid "Cone Lavalite" msgstr "" #: hacks/config/lavalite.xml.h:8 -msgid "" -"Draws a 3D Simulation a Lava Lite(r): odd-shaped blobs of a mysterious " -"substance are heated, slowly rise to the top of the bottle, and then drop " -"back down as they cool. This program requires OpenGL and a fairly fast " -"machine (both CPU and 3D performance.) Written by Jamie Zawinski. \"LAVA LITE" -"(r) and the configuration of the LAVA(r) brand motion lamp are registered " -"trademarks of Haggerty Enterprises, Inc. The configuration of the globe and " -"base of the motion lamp are registered trademarks of Haggerty Enterprises, " -"Inc. in the U.S.A. and in other countries around the world.\"" +msgid "Draws a 3D Simulation a Lava Lite(r): odd-shaped blobs of a mysterious substance are heated, slowly rise to the top of the bottle, and then drop back down as they cool. This program requires OpenGL and a fairly fast machine (both CPU and 3D performance.) Written by Jamie Zawinski. \"LAVA LITE(r) and the configuration of the LAVA(r) brand motion lamp are registered trademarks of Haggerty Enterprises, Inc. The configuration of the globe and base of the motion lamp are registered trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in other countries around the world.\"" msgstr "" #: hacks/config/lavalite.xml.h:9 @@ -5470,9 +5972,7 @@ msgid "Lightning" msgstr "" #: hacks/config/lightning.xml.h:7 -msgid "" -"This one draws crackling fractal lightning bolts. It's simple, direct, and " -"to the point. If only it had sound... Written by Keith Romberg." +msgid "This one draws crackling fractal lightning bolts. It's simple, direct, and to the point. If only it had sound... Written by Keith Romberg." msgstr "" #: hacks/config/lisa.xml.h:4 @@ -5484,16 +5984,11 @@ msgid "Steps" msgstr "" #: hacks/config/lisa.xml.h:11 -msgid "" -"This draws Lisajous loops, by Caleb Cullen. Remember that device they had " -"the Phantom Zone prisoners in during their trial in Superman? I think that " -"was one of these." +msgid "This draws Lisajous loops, by Caleb Cullen. Remember that device they had the Phantom Zone prisoners in during their trial in Superman? I think that was one of these." msgstr "" #: hacks/config/lissie.xml.h:1 -msgid "" -"Another Lissajous figure. This one draws the progress of circular shapes " -"along a path. Written by Alexander Jolk." +msgid "Another Lissajous figure. This one draws the progress of circular shapes along a path. Written by Alexander Jolk." msgstr "" #: hacks/config/lissie.xml.h:5 @@ -5533,9 +6028,7 @@ msgid "Open and Closed Figures" msgstr "" #: hacks/config/lmorph.xml.h:15 -msgid "" -"This generates random spline-ish line drawings and morphs between them. " -"Written by Sverre H. Huseby and Glenn T. Lines." +msgid "This generates random spline-ish line drawings and morphs between them. Written by Sverre H. Huseby and Glenn T. Lines." msgstr "" #: hacks/config/loop.xml.h:3 @@ -5543,16 +6036,15 @@ msgid "Loop" msgstr "" #: hacks/config/loop.xml.h:10 -msgid "" -"This one produces loop-shaped colonies that spawn, age, and eventually die. " -"Written by David Bagley." +msgid "This one produces loop-shaped colonies that spawn, age, and eventually die. Written by David Bagley." msgstr "" #: hacks/config/maze.xml.h:3 msgid "Backtracking Generator" msgstr "" -#: hacks/config/maze.xml.h:5 hacks/config/slidescreen.xml.h:3 +#: hacks/config/maze.xml.h:5 +#: hacks/config/slidescreen.xml.h:3 msgid "Grid Size" msgstr "" @@ -5593,10 +6085,7 @@ msgid "Solve Speed" msgstr "" #: hacks/config/maze.xml.h:16 -msgid "" -"This is the ancient X maze demo, modified to work with xscreensaver. It " -"generates a random maze, then solves it with visual feedback. Originally by " -"Jim Randell; modified by a cast of thousands." +msgid "This is the ancient X maze demo, modified to work with xscreensaver. It generates a random maze, then solves it with visual feedback. Originally by Jim Randell; modified by a cast of thousands." msgstr "" #: hacks/config/memscroller.xml.h:1 @@ -5620,9 +6109,7 @@ msgid "MemScroller" msgstr "" #: hacks/config/memscroller.xml.h:9 -msgid "" -"This draws a dump of its own process memory scrolling across the screen in " -"three windows at three different rates. Written by Jamie Zawinski." +msgid "This draws a dump of its own process memory scrolling across the screen in three windows at three different rates. Written by Jamie Zawinski." msgstr "" #: hacks/config/menger.xml.h:6 @@ -5630,10 +6117,7 @@ msgid "Menger" msgstr "" #: hacks/config/menger.xml.h:19 -msgid "" -"This draws the three-dimensional variant of the recursive Menger Gasket, a " -"cube-based fractal object analagous to the Sierpinski Tetrahedron. Written " -"by Jamie Zawinski." +msgid "This draws the three-dimensional variant of the recursive Menger Gasket, a cube-based fractal object analagous to the Sierpinski Tetrahedron. Written by Jamie Zawinski." msgstr "" #: hacks/config/metaballs.xml.h:1 @@ -5641,9 +6125,7 @@ msgid "Big" msgstr "" #: hacks/config/metaballs.xml.h:2 -msgid "" -"Draws two dimensional metaballs: overlapping and merging balls with fuzzy " -"edges. By W.P. van Paassen." +msgid "Draws two dimensional metaballs: overlapping and merging balls with fuzzy edges. By W.P. van Paassen." msgstr "" #: hacks/config/metaballs.xml.h:7 @@ -5666,14 +6148,13 @@ msgstr "" msgid "Blobby" msgstr "" -#: hacks/config/mirrorblob.xml.h:5 hacks/config/nerverot.xml.h:2 +#: hacks/config/mirrorblob.xml.h:5 +#: hacks/config/nerverot.xml.h:2 msgid "Calm" msgstr "" #: hacks/config/mirrorblob.xml.h:7 -msgid "" -"Draws a wobbly blob that distorts the image behind it. Requires OpenGL " -"hardware acceleration for nice animation. Written by Jon Dowdall." +msgid "Draws a wobbly blob that distorts the image behind it. Requires OpenGL hardware acceleration for nice animation. Written by Jon Dowdall." msgstr "" #: hacks/config/mirrorblob.xml.h:8 @@ -5721,9 +6202,7 @@ msgid "Mismunch" msgstr "" #: hacks/config/mismunch.xml.h:6 -msgid "" -"Munching errors! This is a creatively broken misimplementation of the " -"classic munching squares graphics hack. Written by Steven Hazel." +msgid "Munching errors! This is a creatively broken misimplementation of the classic munching squares graphics hack. Written by Steven Hazel." msgstr "" #: hacks/config/mismunch.xml.h:7 @@ -5734,15 +6213,14 @@ msgstr "" msgid "Simultaneous Squares" msgstr "" -#: hacks/config/mismunch.xml.h:13 hacks/config/munch.xml.h:10 +#: hacks/config/mismunch.xml.h:13 +#: hacks/config/munch.xml.h:10 #: hacks/config/qix.xml.h:26 msgid "XOR" msgstr "" #: hacks/config/moebius.xml.h:1 -msgid "" -"Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip " -"II,'' a GL image of ants walking along the surface of a moebius strip." +msgid "Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip II,'' a GL image of ants walking along the surface of a moebius strip." msgstr "" #: hacks/config/moebius.xml.h:2 @@ -5761,7 +6239,8 @@ msgstr "" msgid "Solid Floor" msgstr "" -#: hacks/config/moebius.xml.h:9 hacks/config/qix.xml.h:20 +#: hacks/config/moebius.xml.h:9 +#: hacks/config/qix.xml.h:20 msgid "Solid Objects" msgstr "" @@ -5769,28 +6248,17 @@ msgstr "" msgid "Moire" msgstr "" -#: hacks/config/moire.xml.h:8 hacks/config/rorschach.xml.h:6 +#: hacks/config/moire.xml.h:8 +#: hacks/config/rorschach.xml.h:6 msgid "Offset" msgstr "" #: hacks/config/moire.xml.h:10 -msgid "" -"This one draws cool circular interference patterns. Most of the circles you " -"see aren't explicitly rendered, but show up as a result of interactions " -"between the other pixels that were drawn. Written by Jamie Zawinski, " -"inspired by Java code by Michael Bayne. As he pointed out, the beauty of " -"this one is that the heart of the display algorithm can be expressed with " -"just a pair of loops and a handful of arithmetic, giving it a high ``display " -"hack metric''." +msgid "This one draws cool circular interference patterns. Most of the circles you see aren't explicitly rendered, but show up as a result of interactions between the other pixels that were drawn. Written by Jamie Zawinski, inspired by Java code by Michael Bayne. As he pointed out, the beauty of this one is that the heart of the display algorithm can be expressed with just a pair of loops and a handful of arithmetic, giving it a high ``display hack metric''." msgstr "" #: hacks/config/moire2.xml.h:1 -msgid "" -"Another example of the fun you can have with moire interference patterns; " -"this hack generates fields of concentric circles or ovals, and combines the " -"planes with various operations. The planes are moving independently of one " -"another, causing the interference lines to ``spray.'' Written by Jamie " -"Zawinski." +msgid "Another example of the fun you can have with moire interference patterns; this hack generates fields of concentric circles or ovals, and combines the planes with various operations. The planes are moving independently of one another, causing the interference lines to ``spray.'' Written by Jamie Zawinski." msgstr "" #: hacks/config/moire2.xml.h:4 @@ -5809,7 +6277,8 @@ msgstr "" msgid "Draw Atomic Nuclei" msgstr "" -#: hacks/config/molecule.xml.h:7 hacks/config/spheremonics.xml.h:2 +#: hacks/config/molecule.xml.h:7 +#: hacks/config/spheremonics.xml.h:2 msgid "Draw Bounding Box" msgstr "" @@ -5818,10 +6287,7 @@ msgid "Draw Electron Shells" msgstr "" #: hacks/config/molecule.xml.h:9 -msgid "" -"Draws several different representations of molecules. Some common molecules " -"are built in, and it can also read PDB (Protein Data Base) files as input. " -"Written by Jamie Zawinski." +msgid "Draws several different representations of molecules. Some common molecules are built in, and it can also read PDB (Protein Data Base) files as input. Written by Jamie Zawinski." msgstr "" #: hacks/config/molecule.xml.h:12 @@ -5837,9 +6303,7 @@ msgid "PDB File or Directory" msgstr "" #: hacks/config/morph3d.xml.h:1 -msgid "" -"Another 3d shape-changing GL hack, by Marcelo Vianna. It has the same shiny-" -"plastic feel as Superquadrics, as many computer-generated objects do..." +msgid "Another 3d shape-changing GL hack, by Marcelo Vianna. It has the same shiny-plastic feel as Superquadrics, as many computer-generated objects do..." msgstr "" #: hacks/config/morph3d.xml.h:4 @@ -5847,9 +6311,7 @@ msgid "Morph3D" msgstr "" #: hacks/config/mountain.xml.h:3 -msgid "" -"Generates random 3d plots that look vaguely mountainous. Written by Pascal " -"Pensa." +msgid "Generates random 3d plots that look vaguely mountainous. Written by Pascal Pensa." msgstr "" #: hacks/config/mountain.xml.h:5 @@ -5857,11 +6319,7 @@ msgid "Mountain" msgstr "" #: hacks/config/munch.xml.h:1 -msgid "" -"DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 As reported by HAKMEM, in 1962, " -"Jackson Wright wrote the above PDP-1 code. That code still lives on in this " -"screenhack, some 35 years later. The number of lines of enclosing code has " -"increased substantially, however. This version is by Tim Showalter." +msgid "DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 As reported by HAKMEM, in 1962, Jackson Wright wrote the above PDP-1 code. That code still lives on in this screenhack, some 35 years later. The number of lines of enclosing code has increased substantially, however. This version is by Tim Showalter." msgstr "" #: hacks/config/munch.xml.h:5 @@ -5885,9 +6343,7 @@ msgid "Crunchiness" msgstr "" #: hacks/config/nerverot.xml.h:7 -msgid "" -"Draws different shapes composed of nervously vibrating squiggles, as if seen " -"through a camera operated by a monkey on crack. By Dan Bornstein." +msgid "Draws different shapes composed of nervously vibrating squiggles, as if seen through a camera operated by a monkey on crack. By Dan Bornstein." msgstr "" #: hacks/config/nerverot.xml.h:10 @@ -5902,7 +6358,8 @@ msgstr "" msgid "Nervousness" msgstr "" -#: hacks/config/nerverot.xml.h:18 hacks/config/pyro.xml.h:12 +#: hacks/config/nerverot.xml.h:18 +#: hacks/config/pyro.xml.h:12 msgid "Seldom" msgstr "" @@ -5919,11 +6376,7 @@ msgid "Noof" msgstr "" #: hacks/config/noseguy.xml.h:1 -msgid "" -"A little man with a big nose wanders around your screen saying things. The " -"things which he says are the output of a program or the contents of a file " -"or URL, as configured on the \"Advanced\" tab of the main Screensaver " -"Preferences window. By Dan Heller and Jamie Zawinski." +msgid "A little man with a big nose wanders around your screen saying things. The things which he says are the output of a program or the contents of a file or URL, as configured on the \"Advanced\" tab of the main Screensaver Preferences window. By Dan Heller and Jamie Zawinski." msgstr "" #: hacks/config/noseguy.xml.h:2 @@ -5940,7 +6393,7 @@ msgstr "" #: hacks/config/noseguy.xml.h:6 msgid "Text File" -msgstr "" +msgstr "Arquivo de Texto" #: hacks/config/noseguy.xml.h:8 msgid "Use Text Below" @@ -5955,9 +6408,7 @@ msgid "Player Size" msgstr "" #: hacks/config/pacman.xml.h:4 -msgid "" -"Simulates a game of Pac-Man on a randomly-created level. Written by Edwin de " -"Jong." +msgid "Simulates a game of Pac-Man on a randomly-created level. Written by Edwin de Jong." msgstr "" #: hacks/config/pedal.xml.h:7 @@ -5965,11 +6416,7 @@ msgid "Pedal" msgstr "" #: hacks/config/pedal.xml.h:8 -msgid "" -"This is sort of a combination spirograph/string-art. It generates a large, " -"complex polygon, and lets the X server do the bulk of the work by giving it " -"an even/odd winding rule. Written by Dale Moore, based on some ancient PDP-" -"11 code." +msgid "This is sort of a combination spirograph/string-art. It generates a large, complex polygon, and lets the X server do the bulk of the work by giving it an even/odd winding rule. Written by Dale Moore, based on some ancient PDP-11 code." msgstr "" #: hacks/config/penetrate.xml.h:1 @@ -5989,9 +6436,7 @@ msgid "Start badly, but learn" msgstr "" #: hacks/config/penetrate.xml.h:8 -msgid "" -"This hack simulates the classic arcade game Missile Command. Written by Adam " -"Miller." +msgid "This hack simulates the classic arcade game Missile Command. Written by Adam Miller." msgstr "" #: hacks/config/penrose.xml.h:1 @@ -5999,18 +6444,7 @@ msgid "Draw Ammann Lines" msgstr "" #: hacks/config/penrose.xml.h:2 -msgid "" -"Draws quasiperiodic tilings; think of the implications on modern formica " -"technology. Written by Timo Korvola. In April 1997, Sir Roger Penrose, a " -"British math professor who has worked with Stephen Hawking on such topics as " -"relativity, black holes, and whether time has a beginning, filed a copyright-" -"infringement lawsuit against the Kimberly-Clark Corporation, which Penrose " -"said copied a pattern he created (a pattern demonstrating that ``a " -"nonrepeating pattern could exist in nature'') for its Kleenex quilted toilet " -"paper. Penrose said he doesn't like litigation but, ``When it comes to the " -"population of Great Britain being invited by a multinational to wipe their " -"bottoms on what appears to be the work of a Knight of the Realm, then a last " -"stand must be taken.'' As reported by News of the Weird #491, 4-jul-1997." +msgid "Draws quasiperiodic tilings; think of the implications on modern formica technology. Written by Timo Korvola. In April 1997, Sir Roger Penrose, a British math professor who has worked with Stephen Hawking on such topics as relativity, black holes, and whether time has a beginning, filed a copyright-infringement lawsuit against the Kimberly-Clark Corporation, which Penrose said copied a pattern he created (a pattern demonstrating that ``a nonrepeating pattern could exist in nature'') for its Kleenex quilted toilet paper. Penrose said he doesn't like litigation but, ``When it comes to the population of Great Britain being invited by a multinational to wipe their bottoms on what appears to be the work of a Knight of the Realm, then a last stand must be taken.'' As reported by News of the Weird #491, 4-jul-1997." msgstr "" #: hacks/config/penrose.xml.h:6 @@ -6082,19 +6516,11 @@ msgid "Square" msgstr "" #: hacks/config/petri.xml.h:27 -msgid "" -"This simulates colonies of mold growing in a petri dish. Growing colored " -"circles overlap and leave spiral interference in their wake. Written by Dan " -"Bornstein." +msgid "This simulates colonies of mold growing in a petri dish. Growing colored circles overlap and leave spiral interference in their wake. Written by Dan Bornstein." msgstr "" #: hacks/config/phosphor.xml.h:1 -msgid "" -"Draws a simulation of an old terminal, with large pixels and long-sustain " -"phosphor. This program is also a fully-functional VT100 emulator! The text " -"can be the output of a program or the contents of a file or URL, as " -"configured on the \"Advanced\" tab of the main Screensaver Preferences " -"window. Written by Jamie Zawinski." +msgid "Draws a simulation of an old terminal, with large pixels and long-sustain phosphor. This program is also a fully-functional VT100 emulator! The text can be the output of a program or the contents of a file or URL, as configured on the \"Advanced\" tab of the main Screensaver Preferences window. Written by Jamie Zawinski." msgstr "" #: hacks/config/phosphor.xml.h:2 @@ -6126,9 +6552,7 @@ msgid "Piecewise" msgstr "" #: hacks/config/piecewise.xml.h:12 -msgid "" -"This draws a bunch of moving circles which switch from visibility to " -"invisibility at intersection points. Written by Geoffrey Irving." +msgid "This draws a bunch of moving circles which switch from visibility to invisibility at intersection points. Written by Geoffrey Irving." msgstr "" #: hacks/config/pinion.xml.h:1 @@ -6140,9 +6564,7 @@ msgid "2000" msgstr "" #: hacks/config/pinion.xml.h:4 -msgid "" -"Draws an interconnected set of gears moving across the screen. Written by " -"Jamie Zawinski." +msgid "Draws an interconnected set of gears moving across the screen. Written by Jamie Zawinski." msgstr "" #: hacks/config/pinion.xml.h:6 @@ -6182,9 +6604,7 @@ msgid "Gadgetry" msgstr "" #: hacks/config/pipes.xml.h:8 -msgid "" -"If you've ever been in the same room with a Windows NT machine, you've " -"probably seen this GL hack. This version is by Marcelo Vianna." +msgid "If you've ever been in the same room with a Windows NT machine, you've probably seen this GL hack. This version is by Marcelo Vianna." msgstr "" #: hacks/config/pipes.xml.h:11 @@ -6203,7 +6623,8 @@ msgstr "" msgid "System Length" msgstr "" -#: hacks/config/polyhedra.xml.h:4 hacks/config/sballs.xml.h:1 +#: hacks/config/polyhedra.xml.h:4 +#: hacks/config/sballs.xml.h:1 msgid "Cube" msgstr "" @@ -6240,18 +6661,15 @@ msgid "Display Random Polyhedron" msgstr "" #: hacks/config/polyhedra.xml.h:13 -msgid "" -"Displays different 3D solids and some information about each. A new solid is " -"chosen every few seconds. There are 75 uniform polyhedra, plus 5 infinite " -"sets of prisms and antiprisms; including their duals brings the total to " -"160. Written by Dr. Zvi Har'El and Jamie Zawinski." +msgid "Displays different 3D solids and some information about each. A new solid is chosen every few seconds. There are 75 uniform polyhedra, plus 5 infinite sets of prisms and antiprisms; including their duals brings the total to 160. Written by Dr. Zvi Har'El and Jamie Zawinski." msgstr "" #: hacks/config/polyhedra.xml.h:14 msgid "Ditrigonal Dodecadodecahedron" msgstr "" -#: hacks/config/polyhedra.xml.h:15 hacks/config/sballs.xml.h:2 +#: hacks/config/polyhedra.xml.h:15 +#: hacks/config/sballs.xml.h:2 msgid "Dodecahedron" msgstr "" @@ -6467,7 +6885,8 @@ msgstr "" msgid "Hexahemioctacron" msgstr "" -#: hacks/config/polyhedra.xml.h:71 hacks/config/sballs.xml.h:5 +#: hacks/config/polyhedra.xml.h:71 +#: hacks/config/sballs.xml.h:5 msgid "Icosahedron" msgstr "" @@ -6519,7 +6938,8 @@ msgstr "" msgid "Medial Triambic Icosahedron" msgstr "" -#: hacks/config/polyhedra.xml.h:85 hacks/config/sballs.xml.h:7 +#: hacks/config/polyhedra.xml.h:85 +#: hacks/config/sballs.xml.h:7 msgid "Octahedron" msgstr "" @@ -6832,9 +7252,7 @@ msgid "Polyominoes" msgstr "" #: hacks/config/polyominoes.xml.h:8 -msgid "" -"Repeatedly attempts to completely fill a rectangle with irregularly-shaped " -"puzzle pieces. Written by Stephen Montgomery-Smith." +msgid "Repeatedly attempts to completely fill a rectangle with irregularly-shaped puzzle pieces. Written by Stephen Montgomery-Smith." msgstr "" #: hacks/config/polytopes.xml.h:2 @@ -6874,12 +7292,7 @@ msgid "Single Color" msgstr "" #: hacks/config/polytopes.xml.h:22 -msgid "" -"This program shows one of the six regular 4D polytopes rotating in 4D. " -"Written by Carsten Steger, inspired by H.S.M Coxeter's book \"Regular " -"Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and Thomas " -"Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, " -"and Higher Dimensions\", Scientific American Library, 1990." +msgid "This program shows one of the six regular 4D polytopes rotating in 4D. Written by Carsten Steger, inspired by H.S.M Coxeter's book \"Regular Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and Thomas Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions\", Scientific American Library, 1990." msgstr "" #: hacks/config/pong.xml.h:2 @@ -6887,10 +7300,7 @@ msgid "Pong" msgstr "" #: hacks/config/pong.xml.h:6 -msgid "" -"The pong program simulates an ancient Pong home video game, as well as " -"various artifacts from displaying it on a color TV set. Written by Jeremy " -"English and Trevor Blackwell." +msgid "The pong program simulates an ancient Pong home video game, as well as various artifacts from displaying it on a color TV set. Written by Jeremy English and Trevor Blackwell." msgstr "" #: hacks/config/popsquares.xml.h:2 @@ -6906,8 +7316,7 @@ msgid "Subdivision" msgstr "" #: hacks/config/popsquares.xml.h:9 -msgid "" -"This draws a pop-art-ish looking grid of pulsing colors. By Levi Burton." +msgid "This draws a pop-art-ish looking grid of pulsing colors. By Levi Burton." msgstr "" #: hacks/config/popsquares.xml.h:10 @@ -6927,9 +7336,7 @@ msgid "Providence" msgstr "" #: hacks/config/providence.xml.h:8 -msgid "" -"The providence code displays an eye, shrouded in glory, set upon the base of " -"a pyramid. Written by Blair Tennessy." +msgid "The providence code displays an eye, shrouded in glory, set upon the base of a pyramid. Written by Blair Tennessy." msgstr "" #: hacks/config/pulsar.xml.h:1 @@ -6937,10 +7344,7 @@ msgid "Anti-alias Lines" msgstr "" #: hacks/config/pulsar.xml.h:3 -msgid "" -"Draws some intersecting planes, making use of alpha blending, fog, textures, " -"and mipmaps, plus a ``frames per second'' meter so that you can tell how " -"fast your graphics card is... Requires OpenGL. Written by David Konerding." +msgid "Draws some intersecting planes, making use of alpha blending, fog, textures, and mipmaps, plus a ``frames per second'' meter so that you can tell how fast your graphics card is... Requires OpenGL. Written by David Konerding." msgstr "" #: hacks/config/pulsar.xml.h:4 @@ -7000,8 +7404,7 @@ msgid "Pyro" msgstr "" #: hacks/config/pyro.xml.h:11 -msgid "" -"Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski." +msgid "Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski." msgstr "" #: hacks/config/qix.xml.h:1 @@ -7037,11 +7440,7 @@ msgid "Subtractive Colors" msgstr "" #: hacks/config/qix.xml.h:24 -msgid "" -"This is the swiss army chainsaw of qix programs. It bounces a series of line " -"segments around the screen, and uses variations on this basic motion pattern " -"to produce all sorts of different presentations: line segments, filled " -"polygons, overlapping translucent areas... Written by Jamie Zawinski." +msgid "This is the swiss army chainsaw of qix programs. It bounces a series of line segments around the screen, and uses variations on this basic motion pattern to produce all sorts of different presentations: line segments, filled polygons, overlapping translucent areas... Written by Jamie Zawinski." msgstr "" #: hacks/config/qix.xml.h:25 @@ -7053,10 +7452,7 @@ msgid "Queens" msgstr "" #: hacks/config/queens.xml.h:5 -msgid "" -"Solves the N-Queens problem (where, in this program, N is between 5 and 10 " -"queens.) The problem is: how may one place N queens on an NxN chessboard " -"such that no queen can attack a sister? Written by Blair Tennessy." +msgid "Solves the N-Queens problem (where, in this program, N is between 5 and 10 queens.) The problem is: how may one place N queens on an NxN chessboard such that no queen can attack a sister? Written by Blair Tennessy." msgstr "" #: hacks/config/rd-bomb.xml.h:1 @@ -7069,10 +7465,7 @@ msgid "1%" msgstr "" #: hacks/config/rd-bomb.xml.h:7 -msgid "" -"Another variation of the `Bomb' program by Scott Draves. This draws a grid " -"of growing square-like shapes that, once they overtake each other, react in " -"unpredictable ways. ``RD'' stands for reaction-diffusion." +msgid "Another variation of the `Bomb' program by Scott Draves. This draws a grid of growing square-like shapes that, once they overtake each other, react in unpredictable ways. ``RD'' stands for reaction-diffusion." msgstr "" #: hacks/config/rd-bomb.xml.h:8 @@ -7095,7 +7488,8 @@ msgstr "" msgid "Seed Radius" msgstr "" -#: hacks/config/rd-bomb.xml.h:19 hacks/config/twang.xml.h:12 +#: hacks/config/rd-bomb.xml.h:19 +#: hacks/config/twang.xml.h:12 msgid "Tile Size" msgstr "" @@ -7148,10 +7542,7 @@ msgid "Storm" msgstr "" #: hacks/config/ripples.xml.h:15 -msgid "" -"This draws rippling interference patterns like splashing water. With the -" -"water option, it manipulates your desktop image to look like something is " -"dripping into it. Written by Tom Hammersley." +msgid "This draws rippling interference patterns like splashing water. With the -water option, it manipulates your desktop image to look like something is dripping into it. Written by Tom Hammersley." msgstr "" #: hacks/config/rocks.xml.h:7 @@ -7163,10 +7554,7 @@ msgid "Steering" msgstr "" #: hacks/config/rocks.xml.h:11 -msgid "" -"This draws an animation of flight through an asteroid field, with changes in " -"rotation and direction. It can also display 3D separations for red/blue " -"glasses! Mostly written by Jamie Zawinski." +msgid "This draws an animation of flight through an asteroid field, with changes in rotation and direction. It can also display 3D separations for red/blue glasses! Mostly written by Jamie Zawinski." msgstr "" #: hacks/config/rocks.xml.h:13 @@ -7178,12 +7566,7 @@ msgid "Rorschach" msgstr "" #: hacks/config/rorschach.xml.h:9 -msgid "" -"This generates random inkblot patterns. The algorithm is deceptively simple " -"for how well it works; it merely walks a dot around the screen randomly, and " -"then reflects the image horizontally, vertically, or both. Any deep-seated " -"neurotic tendencies which this program reveals are your own problem. Written " -"by Jamie Zawinski." +msgid "This generates random inkblot patterns. The algorithm is deceptively simple for how well it works; it merely walks a dot around the screen randomly, and then reflects the image horizontally, vertically, or both. Any deep-seated neurotic tendencies which this program reveals are your own problem. Written by Jamie Zawinski." msgstr "" #: hacks/config/rorschach.xml.h:10 @@ -7195,12 +7578,11 @@ msgid "With Y Symmetry" msgstr "" #: hacks/config/rotor.xml.h:1 -msgid "" -"Another ancient xlock demo, this one by Tom Lawrence. It draws a line " -"segment moving along a complex spiraling curve." +msgid "Another ancient xlock demo, this one by Tom Lawrence. It draws a line segment moving along a complex spiraling curve." msgstr "" -#: hacks/config/rotor.xml.h:4 hacks/config/wander.xml.h:9 +#: hacks/config/rotor.xml.h:4 +#: hacks/config/wander.xml.h:9 msgid "Length" msgstr "" @@ -7217,9 +7599,7 @@ msgid "Animate" msgstr "" #: hacks/config/rotzoomer.xml.h:4 -msgid "" -"Creates a collage of rotated and scaled portions of the screen. Written by " -"Claudio Matsuoka." +msgid "Creates a collage of rotated and scaled portions of the screen. Written by Claudio Matsuoka." msgstr "" #: hacks/config/rotzoomer.xml.h:6 @@ -7243,9 +7623,7 @@ msgid "Wandering Rectangles" msgstr "" #: hacks/config/rubik.xml.h:2 -msgid "" -"Draws a Rubik's Cube that rotates in three dimensions and repeatedly " -"shuffles and solves itself. Another fine GL hack by Marcelo Vianna." +msgid "Draws a Rubik's Cube that rotates in three dimensions and repeatedly shuffles and solves itself. Another fine GL hack by Marcelo Vianna." msgstr "" #: hacks/config/rubik.xml.h:5 @@ -7257,10 +7635,7 @@ msgid "Show Shuffling" msgstr "" #: hacks/config/sballs.xml.h:3 -msgid "" -"Draws an animation of textured balls spinning like crazy in GL. Requires " -"OpenGL, and a machine with fast hardware support for texture maps. Written " -"by Eric Lassauge <lassauge@users.sourceforge.net>." +msgid "Draws an animation of textured balls spinning like crazy in GL. Requires OpenGL, and a machine with fast hardware support for texture maps. Written by Eric Lassauge <lassauge@users.sourceforge.net>." msgstr "" #: hacks/config/sballs.xml.h:8 @@ -7284,9 +7659,7 @@ msgid "ShadeBobs" msgstr "" #: hacks/config/shadebobs.xml.h:11 -msgid "" -"This draws smoothly-shaded oscillating oval patterns, that look something " -"like vapor trails or neon tubes. Written by Shane Smit." +msgid "This draws smoothly-shaded oscillating oval patterns, that look something like vapor trails or neon tubes. Written by Shane Smit." msgstr "" #: hacks/config/sierpinski.xml.h:6 @@ -7294,9 +7667,7 @@ msgid "Sierpinski" msgstr "" #: hacks/config/sierpinski.xml.h:10 -msgid "" -"This draws the two-dimensional variant of the recursive Sierpinski triangle " -"fractal. Written by Desmond Daignault." +msgid "This draws the two-dimensional variant of the recursive Sierpinski triangle fractal. Written by Desmond Daignault." msgstr "" #: hacks/config/sierpinski3d.xml.h:7 @@ -7304,12 +7675,11 @@ msgid "Sierpinski3D" msgstr "" #: hacks/config/sierpinski3d.xml.h:11 -msgid "" -"This draws the three-dimensional variant of the recursive Sierpinski " -"triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski." +msgid "This draws the three-dimensional variant of the recursive Sierpinski triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski." msgstr "" -#: hacks/config/slidescreen.xml.h:1 hacks/config/twang.xml.h:1 +#: hacks/config/slidescreen.xml.h:1 +#: hacks/config/twang.xml.h:1 #: hacks/config/zoom.xml.h:1 msgid "Border Width" msgstr "" @@ -7323,12 +7693,7 @@ msgid "SlideScreen" msgstr "" #: hacks/config/slidescreen.xml.h:8 -msgid "" -"This takes an image, divides it into a grid, and then randomly shuffles the " -"squares around as if it was one of those annoying ``16-puzzle'' games, where " -"there is a grid of squares, one of which is missing. I hate trying to solve " -"those puzzles, but watching one permute itself is more amusing. Written by " -"Jamie Zawinski." +msgid "This takes an image, divides it into a grid, and then randomly shuffles the squares around as if it was one of those annoying ``16-puzzle'' games, where there is a grid of squares, one of which is missing. I hate trying to solve those puzzles, but watching one permute itself is more amusing. Written by Jamie Zawinski." msgstr "" #: hacks/config/slip.xml.h:6 @@ -7336,14 +7701,7 @@ msgid "Slip" msgstr "" #: hacks/config/slip.xml.h:10 -msgid "" -"This program throws some random bits on the screen, then sucks them through " -"a jet engine and spews them out the other side. To avoid turning the image " -"completely to mush, every now and then it will and then it interjects some " -"splashes of color into the scene, or go into a spin cycle, or stretch the " -"image like taffy, or (this is my addition) grab an image of your current " -"desktop to chew on. Originally written by Scott Draves; whacked on by Jamie " -"Zawinski." +msgid "This program throws some random bits on the screen, then sucks them through a jet engine and spews them out the other side. To avoid turning the image completely to mush, every now and then it will and then it interjects some splashes of color into the scene, or go into a spin cycle, or stretch the image like taffy, or (this is my addition) grab an image of your current desktop to chew on. Originally written by Scott Draves; whacked on by Jamie Zawinski." msgstr "" #: hacks/config/sonar.xml.h:1 @@ -7407,12 +7765,7 @@ msgid "Team B Name" msgstr "" #: hacks/config/sonar.xml.h:16 -msgid "" -"This program draws a simulation of a sonar screen. By default, it displays a " -"random assortment of ``bogies'' on the screen, but if installed as \"setuid " -"root\", it can ping (pun intended) your local network, and actually plot the " -"proximity of the other hosts on your network to you. Written by Stephen " -"Martin and Jamie Zawinski." +msgid "This program draws a simulation of a sonar screen. By default, it displays a random assortment of ``bogies'' on the screen, but if installed as \"setuid root\", it can ping (pun intended) your local network, and actually plot the proximity of the other hosts on your network to you. Written by Stephen Martin and Jamie Zawinski." msgstr "" #: hacks/config/sonar.xml.h:17 @@ -7444,9 +7797,7 @@ msgid "Rocky Walls" msgstr "" #: hacks/config/speedmine.xml.h:12 -msgid "" -"Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written " -"by Conrad Parker." +msgid "Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written by Conrad Parker." msgstr "" #: hacks/config/speedmine.xml.h:16 @@ -7457,15 +7808,13 @@ msgstr "" msgid "Thrust" msgstr "" -#: hacks/config/speedmine.xml.h:19 hacks/config/worm.xml.h:10 +#: hacks/config/speedmine.xml.h:19 +#: hacks/config/worm.xml.h:10 msgid "Worm" msgstr "" #: hacks/config/sphere.xml.h:1 -msgid "" -"Another of the classic screenhacks of the distant past, this one draws " -"shaded spheres in multiple colors. This hack traces its lineage back to Tom " -"Duff in 1982." +msgid "Another of the classic screenhacks of the distant past, this one draws shaded spheres in multiple colors. This hack traces its lineage back to Tom Duff in 1982." msgstr "" #: hacks/config/sphereeversion.xml.h:1 @@ -7473,14 +7822,7 @@ msgid "SphereEversion" msgstr "" #: hacks/config/sphereeversion.xml.h:2 -msgid "" -"SphereEversion draws an animation of a sphere being turned inside out. A " -"sphere can be turned inside out, without any tears, sharp creases or " -"discontinuities, if the surface of the sphere is allowed to intersect " -"itself. This program animates what is known as the Thurston Eversion. " -"Written by Nathaniel Thurston and Michael McGuffin. This program is not " -"included with the XScreenSaver package, but if you don't have it already, " -"you can find it at <http://www.dgp.utoronto.ca/~mjmcguff/eversion/>." +msgid "SphereEversion draws an animation of a sphere being turned inside out. A sphere can be turned inside out, without any tears, sharp creases or discontinuities, if the surface of the sphere is allowed to intersect itself. This program animates what is known as the Thurston Eversion. Written by Nathaniel Thurston and Michael McGuffin. This program is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://www.dgp.utoronto.ca/~mjmcguff/eversion/>." msgstr "" #: hacks/config/spheremonics.xml.h:20 @@ -7492,21 +7834,16 @@ msgid "Spheremonics" msgstr "" #: hacks/config/spheremonics.xml.h:24 -msgid "" -"These closed objects are commonly called spherical harmonics, although they " -"are only remotely related to the mathematical definition found in the " -"solution to certain wave functions, most notable the eigenfunctions of " -"angular momentum operators. Written by Paul Bourke and Jamie Zawinski." +msgid "These closed objects are commonly called spherical harmonics, although they are only remotely related to the mathematical definition found in the solution to certain wave functions, most notable the eigenfunctions of angular momentum operators. Written by Paul Bourke and Jamie Zawinski." msgstr "" -#: hacks/config/spiral.xml.h:2 hacks/config/superquadrics.xml.h:2 +#: hacks/config/spiral.xml.h:2 +#: hacks/config/superquadrics.xml.h:2 msgid "Cycles" msgstr "" #: hacks/config/spiral.xml.h:7 -msgid "" -"Moving circular patterns, by Peter Schmitzberger. Moving circular patterns " -"means moire; interference patterns, of course." +msgid "Moving circular patterns, by Peter Schmitzberger. Moving circular patterns means moire; interference patterns, of course." msgstr "" #: hacks/config/spiral.xml.h:11 @@ -7514,9 +7851,7 @@ msgid "Spiral" msgstr "" #: hacks/config/spotlight.xml.h:1 -msgid "" -"Draws a spotlight scanning across a black screen, illuminating the " -"underlying desktop when it passes. Written by Rick Schultz." +msgid "Draws a spotlight scanning across a black screen, illuminating the underlying desktop when it passes. Written by Rick Schultz." msgstr "" #: hacks/config/spotlight.xml.h:6 @@ -7532,10 +7867,7 @@ msgid "Sproingies" msgstr "" #: hacks/config/squiral.xml.h:3 -msgid "" -"Draws a set of interacting, square-spiral-producing automata. The spirals " -"grow outward until they hit something, then they go around it. Written by " -"Jeff Epler." +msgid "Draws a set of interacting, square-spiral-producing automata. The spirals grow outward until they hit something, then they go around it. Written by Jeff Epler." msgstr "" #: hacks/config/squiral.xml.h:5 @@ -7546,7 +7878,8 @@ msgstr "" msgid "Left" msgstr "" -#: hacks/config/squiral.xml.h:11 hacks/config/twang.xml.h:8 +#: hacks/config/squiral.xml.h:11 +#: hacks/config/twang.xml.h:8 msgid "Randomness" msgstr "" @@ -7563,18 +7896,7 @@ msgid "SSystem" msgstr "" #: hacks/config/ssystem.xml.h:2 -msgid "" -"SSystem is a GL Solar System simulator. It simulates flybys of Sun, the nine " -"planets and a few major satellites, with four camera modes. Written by Raul " -"Alonso. This is not included with the XScreenSaver package, but is packaged " -"separately. Note: SSystem does not work as a screen saver on all systems, " -"because it doesn't communicate with xscreensaver properly. It happens to " -"work with some window managers, but not with others, so your mileage may " -"vary. SSystem was once available at <http://www1.las.es/~amil/ssystem/" -">, but is now gone. You may still be able to find copies elsewhere. " -"SSystem has since evolved into Celestia, found at <http://www.shatters." -"net/celestia/>. Sadly, Celestia does not work with xscreensaver at all. " -"You are encouraged to nag the authors into adding xscreensaver support!" +msgid "SSystem is a GL Solar System simulator. It simulates flybys of Sun, the nine planets and a few major satellites, with four camera modes. Written by Raul Alonso. This is not included with the XScreenSaver package, but is packaged separately. Note: SSystem does not work as a screen saver on all systems, because it doesn't communicate with xscreensaver properly. It happens to work with some window managers, but not with others, so your mileage may vary. SSystem was once available at <http://www1.las.es/~amil/ssystem/>, but is now gone. You may still be able to find copies elsewhere. SSystem has since evolved into Celestia, found at <http://www.shatters.net/celestia/>. Sadly, Celestia does not work with xscreensaver at all. You are encouraged to nag the authors into adding xscreensaver support!" msgstr "" #: hacks/config/stairs.xml.h:6 @@ -7582,9 +7904,7 @@ msgid "Stairs" msgstr "" #: hacks/config/stairs.xml.h:8 -msgid "" -"by Marcelo Vianna's third Escher GL hack, this one draws an ``infinite'' " -"staircase." +msgid "by Marcelo Vianna's third Escher GL hack, this one draws an ``infinite'' staircase." msgstr "" #: hacks/config/starfish.xml.h:1 @@ -7600,11 +7920,7 @@ msgid "Starfish" msgstr "" #: hacks/config/starfish.xml.h:13 -msgid "" -"This generates a sequence of undulating, throbbing, star-like patterns which " -"pulsate, rotate, and turn inside out. Another display mode uses these shapes " -"to lay down a field of colors, which are then cycled. The motion is very " -"organic. Written by Jamie Zawinski." +msgid "This generates a sequence of undulating, throbbing, star-like patterns which pulsate, rotate, and turn inside out. Another display mode uses these shapes to lay down a field of colors, which are then cycled. The motion is very organic. Written by Jamie Zawinski." msgstr "" #: hacks/config/starwars.xml.h:2 @@ -7612,12 +7928,7 @@ msgid "Anti-aliased Lines" msgstr "" #: hacks/config/starwars.xml.h:4 -msgid "" -"Draws a stream of text slowly scrolling into the distance at an angle, over " -"a star field, like at the beginning of the movie of the same name. The text " -"can be the output of a program or the contents of a file or URL, as " -"configured on the \"Advanced\" tab of the main Screensaver Preferences " -"window. Written by Jamie Zawinski and Claudio Matauoka." +msgid "Draws a stream of text slowly scrolling into the distance at an angle, over a star field, like at the beginning of the movie of the same name. The text can be the output of a program or the contents of a file or URL, as configured on the \"Advanced\" tab of the main Screensaver Preferences window. Written by Jamie Zawinski and Claudio Matauoka." msgstr "" #: hacks/config/starwars.xml.h:5 @@ -7649,10 +7960,7 @@ msgid "Wrap Long Lines" msgstr "" #: hacks/config/stonerview.xml.h:1 -msgid "" -"Chains of colorful squares dance around each other in complex spiral " -"patterns. Written by Andrew Plotkin, based on SGI's `electropaint' " -"screensaver." +msgid "Chains of colorful squares dance around each other in complex spiral patterns. Written by Andrew Plotkin, based on SGI's `electropaint' screensaver." msgstr "" #: hacks/config/stonerview.xml.h:3 @@ -7664,13 +7972,11 @@ msgid "Strange" msgstr "" #: hacks/config/strange.xml.h:7 -msgid "" -"This draws strange attractors: it's a colorful, unpredictably-animating " -"field of dots that swoops and twists around. The motion is very nice. " -"Written by Massimino Pascal." +msgid "This draws strange attractors: it's a colorful, unpredictably-animating field of dots that swoops and twists around. The motion is very nice. Written by Massimino Pascal." msgstr "" -#: hacks/config/substrate.xml.h:2 hacks/config/xplanet.xml.h:2 +#: hacks/config/substrate.xml.h:2 +#: hacks/config/xplanet.xml.h:2 #, no-c-format msgid "0%" msgstr "" @@ -7684,10 +7990,7 @@ msgid "Initial Cracks" msgstr "" #: hacks/config/substrate.xml.h:10 -msgid "" -"Lines like crystals grow on a computational substrate. A simple " -"perpendicular growth rule creates intricate city-like structures. By J. " -"Tarbell and Mike Kershaw." +msgid "Lines like crystals grow on a computational substrate. A simple perpendicular growth rule creates intricate city-like structures. By J. Tarbell and Mike Kershaw." msgstr "" #: hacks/config/substrate.xml.h:13 @@ -7703,10 +8006,7 @@ msgid "Wireframe only" msgstr "" #: hacks/config/superquadrics.xml.h:3 -msgid "" -"Ed Mackey reports that he wrote the first version of this program in BASIC " -"on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it is " -"GL and has specular reflections." +msgid "Ed Mackey reports that he wrote the first version of this program in BASIC on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it is GL and has specular reflections." msgstr "" #: hacks/config/superquadrics.xml.h:11 @@ -7714,10 +8014,7 @@ msgid "Superquadrics" msgstr "" #: hacks/config/swirl.xml.h:4 -msgid "" -"More flowing, swirly patterns. This version is by M. Dobie and R. Taylor, " -"but you might have seen a Mac program similar to this called FlowFazer. " -"There is also a cool Java applet of a similar concept." +msgid "More flowing, swirly patterns. This version is by M. Dobie and R. Taylor, but you might have seen a Mac program similar to this called FlowFazer. There is also a cool Java applet of a similar concept." msgstr "" #: hacks/config/swirl.xml.h:8 @@ -7757,9 +8054,7 @@ msgid "T3D" msgstr "" #: hacks/config/t3d.xml.h:15 -msgid "" -"This draws a working analog clock composed of floating, throbbing bubbles. " -"Written by Bernd Paysan." +msgid "This draws a working analog clock composed of floating, throbbing bubbles. Written by Bernd Paysan." msgstr "" #: hacks/config/t3d.xml.h:16 @@ -7771,8 +8066,7 @@ msgid "Wobbliness" msgstr "" #: hacks/config/tangram.xml.h:3 -msgid "" -"Lets you watch the computer solve Tangram puzzles Written by Jeremy English." +msgid "Lets you watch the computer solve Tangram puzzles Written by Jeremy English." msgstr "" #: hacks/config/tangram.xml.h:6 @@ -7796,9 +8090,7 @@ msgid "Z Camera Rotate" msgstr "" #: hacks/config/thornbird.xml.h:1 -msgid "" -"Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim " -"Auckland." +msgid "Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim Auckland." msgstr "" #: hacks/config/thornbird.xml.h:6 @@ -7822,9 +8114,7 @@ msgid "Draw Logo" msgstr "" #: hacks/config/timetunnel.xml.h:5 -msgid "" -"Draws an animation similar to the opening and closing effects on the Dr. Who " -"television show. Written by Sean P. Brennan." +msgid "Draws an animation similar to the opening and closing effects on the Dr. Who television show. Written by Sean P. Brennan." msgstr "" #: hacks/config/timetunnel.xml.h:7 @@ -7840,9 +8130,7 @@ msgid "Timetunnel" msgstr "" #: hacks/config/triangle.xml.h:2 -msgid "" -"Generates random mountain ranges using iterative subdivision of triangles. " -"Written by Tobias Gloth." +msgid "Generates random mountain ranges using iterative subdivision of triangles. Written by Tobias Gloth." msgstr "" #: hacks/config/triangle.xml.h:7 @@ -7850,9 +8138,7 @@ msgid "Triangle" msgstr "" #: hacks/config/truchet.xml.h:4 -msgid "" -"This draws line- and arc-based Truchet patterns that tile the screen. " -"Written by Adrian Likins." +msgid "This draws line- and arc-based Truchet patterns that tile the screen. Written by Adrian Likins." msgstr "" #: hacks/config/truchet.xml.h:5 @@ -7860,8 +8146,7 @@ msgid "Truchet" msgstr "" #: hacks/config/twang.xml.h:2 -msgid "" -"Divides the screen into a grid, and plucks them. Written by Dan Bornstein." +msgid "Divides the screen into a grid, and plucks them. Written by Dan Bornstein." msgstr "" #: hacks/config/twang.xml.h:6 @@ -7897,13 +8182,7 @@ msgid "Image Directory" msgstr "" #: hacks/config/vidwhacker.xml.h:5 -msgid "" -"This is actually just a shell script that grabs a frame of video from the " -"system's video input, and then uses some PBM filters (chosen at random) to " -"manipulate and recombine the video frame in various ways (edge detection, " -"subtracting the image from a rotated version of itself, etc.) Then it " -"displays that image for a few seconds, and does it again. This works really " -"well if you just feed broadcast television into it." +msgid "This is actually just a shell script that grabs a frame of video from the system's video input, and then uses some PBM filters (chosen at random) to manipulate and recombine the video frame in various ways (edge detection, subtracting the image from a rotated version of itself, etc.) Then it displays that image for a few seconds, and does it again. This works really well if you just feed broadcast television into it." msgstr "" #: hacks/config/vidwhacker.xml.h:6 @@ -7911,10 +8190,7 @@ msgid "VidWhacker" msgstr "" #: hacks/config/vines.xml.h:6 -msgid "" -"This one generates a continuous sequence of small, curvy geometric patterns. " -"It scatters them around your screen until it fills up, then it clears the " -"screen and starts over. Written by Tracy Camp and David Hansen." +msgid "This one generates a continuous sequence of small, curvy geometric patterns. It scatters them around your screen until it fills up, then it clears the screen and starts over. Written by Tracy Camp and David Hansen." msgstr "" #: hacks/config/vines.xml.h:8 @@ -7926,8 +8202,7 @@ msgid "Draw Spots" msgstr "" #: hacks/config/wander.xml.h:6 -msgid "" -"Draws a colorful random-walk, in various forms. Written by Rick Campbell." +msgid "Draws a colorful random-walk, in various forms. Written by Rick Campbell." msgstr "" #: hacks/config/wander.xml.h:14 @@ -7963,14 +8238,7 @@ msgid "Per-Image Filter Program" msgstr "" #: hacks/config/webcollage.xml.h:9 -msgid "" -"This program makes collages out of random images pulled off of the World " -"Wide Web. It finds these images by doing random web searches, and then " -"extracting images from the returned pages. It can also be set up to filter " -"the images through the `VidWhacker' program. WARNING: THE INTERNET SOMETIMES " -"CONTAINS PORNOGRAPHY. The Internet being what it is, absolutely anything " -"might show up in the collage including -- quite possibly -- pornography, or " -"even nudity. Please act accordingly. Written by Jamie Zawinski." +msgid "This program makes collages out of random images pulled off of the World Wide Web. It finds these images by doing random web searches, and then extracting images from the returned pages. It can also be set up to filter the images through the `VidWhacker' program. WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY. The Internet being what it is, absolutely anything might show up in the collage including -- quite possibly -- pornography, or even nudity. Please act accordingly. Written by Jamie Zawinski." msgstr "" #: hacks/config/webcollage.xml.h:10 @@ -7982,10 +8250,7 @@ msgid "WebCollage" msgstr "" #: hacks/config/whirlwindwarp.xml.h:2 -msgid "" -"Floating stars are acted upon by a mixture of simple 2D forcefields. The " -"strength of each forcefield changes continuously, and it is also switched on " -"and off at random. By Paul 'Joey' Clark." +msgid "Floating stars are acted upon by a mixture of simple 2D forcefields. The strength of each forcefield changes continuously, and it is also switched on and off at random. By Paul 'Joey' Clark." msgstr "" #: hacks/config/whirlwindwarp.xml.h:7 @@ -8057,10 +8322,7 @@ msgid "Wrap the screen" msgstr "" #: hacks/config/worm.xml.h:1 -msgid "" -"An ancient xlock hack that draws multicolored worms that crawl around the " -"screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik " -"Theiling." +msgid "An ancient xlock hack that draws multicolored worms that crawl around the screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling." msgstr "" #: hacks/config/wormhole.xml.h:6 @@ -8076,9 +8338,7 @@ msgid "Wormhole" msgstr "" #: hacks/config/wormhole.xml.h:9 -msgid "" -"Wormhole simulates flying through a colored wormhole in space. Written by " -"Jon Rafkind." +msgid "Wormhole simulates flying through a colored wormhole in space. Written by Jon Rafkind." msgstr "" #: hacks/config/xanalogtv.xml.h:1 @@ -8086,12 +8346,7 @@ msgid "XAnalogTV" msgstr "" #: hacks/config/xanalogtv.xml.h:2 -msgid "" -"XAnalogTV shows a detailed simulation of an old TV set showing various test " -"patterns, with various picture artifacts like snow, bloom, distortion, " -"ghosting, and hash noise. It also simulates the TV warming up. It will cycle " -"through 12 channels, some with images you give it, and some with color bars " -"or nothing but static. By Trevor Blackwell." +msgid "XAnalogTV shows a detailed simulation of an old TV set showing various test patterns, with various picture artifacts like snow, bloom, distortion, ghosting, and hash noise. It also simulates the TV warming up. It will cycle through 12 channels, some with images you give it, and some with color bars or nothing but static. By Trevor Blackwell." msgstr "" #: hacks/config/xaos.xml.h:1 @@ -8099,11 +8354,7 @@ msgid "XaoS" msgstr "" #: hacks/config/xaos.xml.h:2 -msgid "" -"XaoS generates fast fly-through animations of the Mandelbrot and other " -"fractal sets. Written by Thomas Marsh and Jan Hubicka. This is not included " -"with the XScreenSaver package, but if you don't have it already, you can " -"find it at <http://xaos.theory.org/>." +msgid "XaoS generates fast fly-through animations of the Mandelbrot and other fractal sets. Written by Thomas Marsh and Jan Hubicka. This is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://xaos.theory.org/>." msgstr "" #: hacks/config/xdaliclock.xml.h:1 @@ -8126,7 +8377,8 @@ msgstr "" msgid "Huge Font" msgstr "" -#: hacks/config/xdaliclock.xml.h:6 hacks/config/xmatrix.xml.h:10 +#: hacks/config/xdaliclock.xml.h:6 +#: hacks/config/xmatrix.xml.h:10 msgid "Large Font" msgstr "" @@ -8134,7 +8386,8 @@ msgstr "" msgid "Medium Font" msgstr "" -#: hacks/config/xdaliclock.xml.h:8 hacks/config/xmatrix.xml.h:16 +#: hacks/config/xdaliclock.xml.h:8 +#: hacks/config/xmatrix.xml.h:16 msgid "Small Font" msgstr "" @@ -8143,18 +8396,15 @@ msgid "XDaliClock" msgstr "" #: hacks/config/xdaliclock.xml.h:10 -msgid "" -"XDaliClock draws a large digital clock, the numbers of which change by " -"``melting'' into their new shapes. Written by Jamie Zawinski. This is not " -"included with the XScreenSaver package, but if you don't have it already, " -"you can find it at <http://www.jwz.org/xdaliclock/>." +msgid "XDaliClock draws a large digital clock, the numbers of which change by ``melting'' into their new shapes. Written by Jamie Zawinski. This is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://www.jwz.org/xdaliclock/>." msgstr "" #: hacks/config/xearth.xml.h:1 msgid "Bright" msgstr "" -#: hacks/config/xearth.xml.h:2 hacks/config/xplanet.xml.h:7 +#: hacks/config/xearth.xml.h:2 +#: hacks/config/xplanet.xml.h:7 msgid "Date/Time Stamp" msgstr "" @@ -8170,15 +8420,18 @@ msgstr "" msgid "Label Cities" msgstr "" -#: hacks/config/xearth.xml.h:9 hacks/config/xplanet.xml.h:49 +#: hacks/config/xearth.xml.h:9 +#: hacks/config/xplanet.xml.h:49 msgid "Lower Left" msgstr "" -#: hacks/config/xearth.xml.h:10 hacks/config/xplanet.xml.h:50 +#: hacks/config/xearth.xml.h:10 +#: hacks/config/xplanet.xml.h:50 msgid "Lower Right" msgstr "" -#: hacks/config/xearth.xml.h:13 hacks/config/xplanet.xml.h:51 +#: hacks/config/xearth.xml.h:13 +#: hacks/config/xplanet.xml.h:51 msgid "Mercator Projection" msgstr "" @@ -8194,11 +8447,13 @@ msgstr "" msgid "North/South Rotation" msgstr "" -#: hacks/config/xearth.xml.h:18 hacks/config/xplanet.xml.h:53 +#: hacks/config/xearth.xml.h:18 +#: hacks/config/xplanet.xml.h:53 msgid "Orthographic Projection" msgstr "" -#: hacks/config/xearth.xml.h:19 hacks/config/xplanet.xml.h:56 +#: hacks/config/xearth.xml.h:19 +#: hacks/config/xplanet.xml.h:56 msgid "Real Time" msgstr "" @@ -8214,26 +8469,23 @@ msgstr "" msgid "Terminator Blurry" msgstr "" -#: hacks/config/xearth.xml.h:27 hacks/config/xplanet.xml.h:61 +#: hacks/config/xearth.xml.h:27 +#: hacks/config/xplanet.xml.h:61 msgid "Time Warp" msgstr "" -#: hacks/config/xearth.xml.h:29 hacks/config/xplanet.xml.h:62 +#: hacks/config/xearth.xml.h:29 +#: hacks/config/xplanet.xml.h:62 msgid "Upper Left" msgstr "" -#: hacks/config/xearth.xml.h:30 hacks/config/xplanet.xml.h:63 +#: hacks/config/xearth.xml.h:30 +#: hacks/config/xplanet.xml.h:63 msgid "Upper Right" msgstr "" #: hacks/config/xearth.xml.h:31 -msgid "" -"XEarth draws an image of the Earth, as seen from your favorite vantage point " -"in space, correctly shaded for the current position of the Sun. Written by " -"Kirk Johnson. This is not included with the XScreenSaver package, but if you " -"don't have it already, you can find it at <http://www.cs.colorado.edu/" -"~tuna/xearth/>. There is also a similar (but more recent) program called " -"xplanet to be found at <http://xplanet.sourceforge.net/>." +msgid "XEarth draws an image of the Earth, as seen from your favorite vantage point in space, correctly shaded for the current position of the Sun. Written by Kirk Johnson. This is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://www.cs.colorado.edu/~tuna/xearth/>. There is also a similar (but more recent) program called xplanet to be found at <http://xplanet.sourceforge.net/>." msgstr "" #: hacks/config/xearth.xml.h:32 @@ -8249,10 +8501,7 @@ msgid "Fish Speed" msgstr "" #: hacks/config/xfishtank.xml.h:7 -msgid "" -"Fish! This is not included with the XScreenSaver package, but if you don't " -"have it already, you can find it at <http://metalab.unc.edu/pub/Linux/X11/" -"demos/>." +msgid "Fish! This is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://metalab.unc.edu/pub/Linux/X11/demos/>." msgstr "" #: hacks/config/xfishtank.xml.h:12 @@ -8264,9 +8513,7 @@ msgid "Bitmap File" msgstr "" #: hacks/config/xflame.xml.h:2 -msgid "" -"Draws a simulation of pulsing fire. It can also take an arbitrary image and " -"set it on fire too. Written by Carsten Haitzler, hacked on by many others." +msgid "Draws a simulation of pulsing fire. It can also take an arbitrary image and set it on fire too. Written by Carsten Haitzler, hacked on by many others." msgstr "" #: hacks/config/xflame.xml.h:3 @@ -8278,11 +8525,7 @@ msgid "Xflame" msgstr "" #: hacks/config/xjack.xml.h:4 -msgid "" -"This program behaves schizophrenically and makes a lot of typos. Written by " -"Jamie Zawinski. If you haven't seen Stanley Kubrick's masterpiece, ``The " -"Shining,'' you won't get it. Those who have describe this hack as " -"``inspired.''" +msgid "This program behaves schizophrenically and makes a lot of typos. Written by Jamie Zawinski. If you haven't seen Stanley Kubrick's masterpiece, ``The Shining,'' you won't get it. Those who have describe this hack as ``inspired.''" msgstr "" #: hacks/config/xjack.xml.h:5 @@ -8290,10 +8533,7 @@ msgid "Xjack" msgstr "" #: hacks/config/xlyap.xml.h:1 -msgid "" -"This generates pretty fractal pictures by doing funky math involving the " -"``Lyapunov exponent.'' It has a cool interactive mode, too. Written by Ron " -"Record." +msgid "This generates pretty fractal pictures by doing funky math involving the ``Lyapunov exponent.'' It has a cool interactive mode, too. Written by Ron Record." msgstr "" #: hacks/config/xlyap.xml.h:2 @@ -8301,11 +8541,7 @@ msgid "Xlyap" msgstr "" #: hacks/config/xmatrix.xml.h:3 -msgid "" -"Draws dropping characters similar to what is seen on the computer monitors " -"in \"The Matrix\". See also \"glmatrix\" for a 3D rendering of the similar " -"effect that appeared in the title sequence of the movie. Written by Jamie " -"Zawinski." +msgid "Draws dropping characters similar to what is seen on the computer monitors in \"The Matrix\". See also \"glmatrix\" for a 3D rendering of the similar effect that appeared in the title sequence of the movie. Written by Jamie Zawinski." msgstr "" #: hacks/config/xmatrix.xml.h:4 @@ -8461,12 +8697,7 @@ msgid "Viewpoint" msgstr "" #: hacks/config/xmountains.xml.h:35 -msgid "" -"XMountains generates realistic-looking fractal terrains of snow-capped " -"mountains near water, with either a top view or a side view. Written by " -"Stephen Booth. This is not included with the XScreenSaver package, but if " -"you don't have it already, you can find it at <http://www.epcc.ed.ac.uk/" -"~spb/xmountains/>. (Make sure you have version 2.7 or newer!)" +msgid "XMountains generates realistic-looking fractal terrains of snow-capped mountains near water, with either a top view or a side view. Written by Stephen Booth. This is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://www.epcc.ed.ac.uk/~spb/xmountains/>. (Make sure you have version 2.7 or newer!)" msgstr "" #: hacks/config/xmountains.xml.h:36 @@ -8814,18 +9045,11 @@ msgid "Xplanet" msgstr "" #: hacks/config/xplanet.xml.h:101 -msgid "" -"Xplanet draws an image of the Earth, as seen from your favorite vantage " -"point in space, correctly shaded for the current position of the Sun. " -"Written by Hari Nair. This is not included with the XScreenSaver package, " -"but if you don't have it already, you can find it at <http://xplanet." -"sourceforge.net/>." +msgid "Xplanet draws an image of the Earth, as seen from your favorite vantage point in space, correctly shaded for the current position of the Sun. Written by Hari Nair. This is not included with the XScreenSaver package, but if you don't have it already, you can find it at <http://xplanet.sourceforge.net/>." msgstr "" #: hacks/config/xrayswarm.xml.h:1 -msgid "" -"Draws a few swarms of critters flying around the screen, with nicely faded " -"color trails behind them. Written by Chris Leger." +msgid "Draws a few swarms of critters flying around the screen, with nicely faded color trails behind them. Written by Chris Leger." msgstr "" #: hacks/config/xrayswarm.xml.h:5 @@ -8833,9 +9057,7 @@ msgid "XRaySwarm" msgstr "" #: hacks/config/xsnow.xml.h:1 -msgid "" -"Draws falling snow and the occasional tiny Santa. By Rick Jansen. You can " -"find it at <http://www.euronet.nl/~rja/Xsnow/>." +msgid "Draws falling snow and the occasional tiny Santa. By Rick Jansen. You can find it at <http://www.euronet.nl/~rja/Xsnow/>." msgstr "" #: hacks/config/xsnow.xml.h:2 @@ -8843,9 +9065,7 @@ msgid "Xsnow" msgstr "" #: hacks/config/xspirograph.xml.h:5 -msgid "" -"Simulates that pen-in-nested-plastic-gears toy from your childhood. By Rohit " -"Singh." +msgid "Simulates that pen-in-nested-plastic-gears toy from your childhood. By Rohit Singh." msgstr "" #: hacks/config/xspirograph.xml.h:6 @@ -8873,9 +9093,7 @@ msgid "XTeeVee" msgstr "" #: hacks/config/xteevee.xml.h:6 -msgid "" -"XTeeVee simulates various television problems, including static, loss of " -"vertical hold, and a test pattern. By Greg Knauss." +msgid "XTeeVee simulates various television problems, including static, loss of vertical hold, and a test pattern. By Greg Knauss." msgstr "" #: hacks/config/zoom.xml.h:3 @@ -8887,10 +9105,7 @@ msgid "Lenses" msgstr "" #: hacks/config/zoom.xml.h:9 -msgid "" -"Zooms in on a part of the screen and then moves around. With the -lenses " -"option the result is like looking through many overlapping lenses rather " -"than just a simple zoom. Written by James Macnicol." +msgid "Zooms in on a part of the screen and then moves around. With the -lenses option the result is like looking through many overlapping lenses rather than just a simple zoom. Written by James Macnicol." msgstr "" #, fuzzy @@ -8900,3 +9115,4 @@ msgstr "" #, fuzzy #~ msgid "Preview of screen saver" #~ msgstr "Propriedades da proteo de tela" + diff --git a/utils/._colors.c b/utils/._colors.c deleted file mode 100644 index 64a888569bb986fa4eddef99211568843e77c5e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aRm^A_^W`J2;dkJ62zda{~4$hq+<>c y^Py>DM2L$g=jZAr78K;9>V>3Ml(^<4=ci=mr2`dY7U%0)SeRPs8d{qg8Up|= 0 ? -1 : 1); - - if (distance > 180) - distance = 180 - (distance - 180); - else if (distance < -180) - distance = -(180 - ((-distance) - 180)); - else - direction = -direction; + int distance = h[(i+1) % npoints] - h[i]; + int direction = (distance >= 0 ? -1 : 1); + + if (distance <= 180 && distance >= -180) + direction = -direction; #ifdef DEBUG fprintf (stderr, "point %d: %3d %.2f %.2f\n", @@ -541,7 +536,7 @@ make_smooth_colormap (Display *dpy, Visual *visual, Colormap cmap, allocate_p, (writable_pP && *writable_pP)); /* If we tried for writable cells and got none, try for non-writable. */ - if (allocate_p && *ncolorsP == 0 && *writable_pP) + if (allocate_p && *ncolorsP == 0 && writable_pP && *writable_pP) { *writable_pP = False; goto RETRY_NON_WRITABLE; diff --git a/utils/erase.c b/utils/erase.c index e0567788..05b213e2 100644 --- a/utils/erase.c +++ b/utils/erase.c @@ -574,12 +574,7 @@ losira (eraser_state *st) else if (st->ratio < mode2) /* squeeze from the top/bottom */ { double ratio = (st->ratio - mode1) / (mode2 - mode1); - double prev_ratio = (st->prev_ratio - mode1) / (mode2 - mode1); int max = st->height / 2; - int step = (max * ratio) - (max * prev_ratio); - - if (step <= 0) - step = 1; /* fill middle */ XFillRectangle (st->dpy, st->window, st->fg_gc, diff --git a/utils/grabclient.c b/utils/grabclient.c index 54396c76..438197e8 100644 --- a/utils/grabclient.c +++ b/utils/grabclient.c @@ -582,13 +582,13 @@ pipe_cb (XtPointer closure, int *source, XtInputId *id) Window r; int x, y; unsigned int w, h, bbw, d; - struct stat *st; + struct stat st; /* Log something to syslog so we can tell the difference between corrupted images and broken symlinks. */ if (!*buf) fprintf (stderr, "%s: no image filename found\n", progname); - else if (! stat (buf, st)) + else if (! stat (buf, &st)) fprintf (stderr, "%s: %s: unparsable\n", progname, buf); else { @@ -730,11 +730,9 @@ load_random_image_1 (Screen *screen, Window window, Drawable drawable, done = True; } - if (! done) { + if (! done) draw_colorbars (screen, xgwa.visual, drawable, xgwa.colormap, 0, 0, xgwa.width, xgwa.height); - done = True; - } if (callback) { /* If we got here, we loaded synchronously even though they wanted async. diff --git a/utils/spline.c b/utils/spline.c index ed3d31cb..d2d44777 100644 --- a/utils/spline.c +++ b/utils/spline.c @@ -29,7 +29,6 @@ #define SMOOTHNESS 1.0 -static void no_more_memory (void); static void grow_spline_points (spline* s); static void mid_point (double x0, double y0, double x1, double y1, double *mx, double *my); @@ -45,19 +44,11 @@ static void calc_section (spline* s, double cminus1x, double cminus1y, double cx, double cy, double cplus1x, double cplus1y, double cplus2x, double cplus2y); -static void -no_more_memory (void) -{ - fprintf (stderr, "No more memory\n"); - exit (1); -} - spline* make_spline (unsigned int size) { spline* s = (spline*)calloc (1, sizeof (spline)); - if (!s) - no_more_memory (); + if (!s) abort(); s->n_controls = size; s->control_x = (double*)calloc (s->n_controls, sizeof (double)); s->control_y = (double*)calloc (s->n_controls, sizeof (double)); @@ -67,7 +58,7 @@ make_spline (unsigned int size) s->points = (XPoint*)calloc (s->allocated_points, sizeof (XPoint)); if (!s->control_x || !s->control_y || !s->points) - no_more_memory (); + abort(); return s; } @@ -78,9 +69,7 @@ grow_spline_points (spline *s) s->allocated_points *= 2; s->points = (XPoint*)realloc (s->points, s->allocated_points * sizeof (XPoint)); - - if (!s->points) - no_more_memory (); + if (!s->points) abort(); } static void diff --git a/utils/version.h b/utils/version.h index 299ab655..189b0747 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static const char screensaver_id[] = - "@(#)xscreensaver 5.11 (13-Apr-2010), by Jamie Zawinski (jwz@jwz.org)"; + "@(#)xscreensaver 5.12 (15-Sep-2010), by Jamie Zawinski (jwz@jwz.org)"; diff --git a/xscreensaver.spec b/xscreensaver.spec index 24c95209..6e62a41c 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,5 +1,5 @@ %define name xscreensaver -%define version 5.11 +%define version 5.12 Summary: X screen saver and locker Name: %{name} diff --git a/xscreensaver.xcodeproj/project.pbxproj b/xscreensaver.xcodeproj/project.pbxproj index 5d0e05b2..56980807 100644 --- a/xscreensaver.xcodeproj/project.pbxproj +++ b/xscreensaver.xcodeproj/project.pbxproj @@ -383,9 +383,6 @@ AF32D9FB0F3AD1200080F535 /* rubikblocks.c in Sources */ = {isa = PBXBuildFile; fileRef = AF32D9FA0F3AD1200080F535 /* rubikblocks.c */; }; AF32D9FD0F3AD1330080F535 /* rubikblocks.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF32D9FC0F3AD1330080F535 /* rubikblocks.xml */; }; AF35E8900E63823600691F2F /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF35E8910E63823600691F2F /* sonar-icmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30BFF0E52B1DC00CCF4A5 /* sonar-icmp.c */; }; - AF35E8920E63823600691F2F /* sonar-sim.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30C000E52B1DC00CCF4A5 /* sonar-sim.c */; }; - AF35E8930E63823600691F2F /* sonar.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30C010E52B1DC00CCF4A5 /* sonar.c */; }; AF35E8950E63823600691F2F /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; AF35E8960E63823600691F2F /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; AF35E8970E63823600691F2F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; @@ -17340,7 +17337,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF0DCA520C4CBB0D00D76972 /* ShellScript */ = { @@ -17354,7 +17351,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF1A176F0D6D6EE3008AF328 /* ShellScript */ = { @@ -17368,7 +17365,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF32D9F00F3AD0B40080F535 /* ShellScript */ = { @@ -17382,7 +17379,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF35E89C0E63823600691F2F /* ShellScript */ = { @@ -17396,7 +17393,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF3C71550D624BF50030CC0D /* ShellScript */ = { @@ -17410,7 +17407,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF48DEFF0A0C25E000F94CF9 /* ShellScript */ = { @@ -17424,7 +17421,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF4A3459102A593600A81B2A /* ShellScript */ = { @@ -17438,7 +17435,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF4FD6F60CE7A486005EE58E /* ShellScript */ = { @@ -17452,7 +17449,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF4FF4CA0D52CBDE00666F98 /* ShellScript */ = { @@ -17466,7 +17463,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AF998EEA0A083DB30051049D /* ShellScript */ = { @@ -17480,7 +17477,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3393C0B058505002B0E7D /* ShellScript */ = { @@ -17494,7 +17491,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA33C010B058E17002B0E7D /* ShellScript */ = { @@ -17521,7 +17518,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D69409C03B6200E4CFCA /* ShellScript */ = { @@ -17535,7 +17532,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D85B09C03BD300E4CFCA /* ShellScript */ = { @@ -17549,7 +17546,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D85D09C03BD700E4CFCA /* ShellScript */ = { @@ -17563,7 +17560,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D85F09C03BDA00E4CFCA /* ShellScript */ = { @@ -17577,7 +17574,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86109C03BDE00E4CFCA /* ShellScript */ = { @@ -17591,7 +17588,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86309C03BE200E4CFCA /* ShellScript */ = { @@ -17605,7 +17602,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86509C03BE500E4CFCA /* ShellScript */ = { @@ -17619,7 +17616,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86709C03BE800E4CFCA /* ShellScript */ = { @@ -17633,7 +17630,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86909C03BEC00E4CFCA /* ShellScript */ = { @@ -17647,7 +17644,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86B09C03BEF00E4CFCA /* ShellScript */ = { @@ -17661,7 +17658,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86D09C03BF300E4CFCA /* ShellScript */ = { @@ -17675,7 +17672,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D86F09C03BF700E4CFCA /* ShellScript */ = { @@ -17689,7 +17686,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87109C03BFB00E4CFCA /* ShellScript */ = { @@ -17703,7 +17700,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87309C03C0000E4CFCA /* ShellScript */ = { @@ -17717,7 +17714,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87509C03C0400E4CFCA /* ShellScript */ = { @@ -17731,7 +17728,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87709C03C0A00E4CFCA /* ShellScript */ = { @@ -17745,7 +17742,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87909C03C1200E4CFCA /* ShellScript */ = { @@ -17759,7 +17756,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87B09C03C1700E4CFCA /* ShellScript */ = { @@ -17773,7 +17770,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87D09C03C1B00E4CFCA /* ShellScript */ = { @@ -17787,7 +17784,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D87F09C03C1E00E4CFCA /* ShellScript */ = { @@ -17801,7 +17798,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88109C03C2100E4CFCA /* ShellScript */ = { @@ -17815,7 +17812,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88309C03C2400E4CFCA /* ShellScript */ = { @@ -17829,7 +17826,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88509C03C2700E4CFCA /* ShellScript */ = { @@ -17843,7 +17840,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88709C03C2A00E4CFCA /* ShellScript */ = { @@ -17857,7 +17854,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88909C03C2E00E4CFCA /* ShellScript */ = { @@ -17871,7 +17868,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88B09C03C3200E4CFCA /* ShellScript */ = { @@ -17885,7 +17882,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88D09C03C3600E4CFCA /* ShellScript */ = { @@ -17899,7 +17896,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D88F09C03C3900E4CFCA /* ShellScript */ = { @@ -17913,7 +17910,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89109C03C3C00E4CFCA /* ShellScript */ = { @@ -17927,7 +17924,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89309C03C4000E4CFCA /* ShellScript */ = { @@ -17941,7 +17938,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89509C03C4400E4CFCA /* ShellScript */ = { @@ -17955,7 +17952,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89709C03C4700E4CFCA /* ShellScript */ = { @@ -17969,7 +17966,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89B09C03C4D00E4CFCA /* ShellScript */ = { @@ -17983,7 +17980,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89D09C03C5000E4CFCA /* ShellScript */ = { @@ -17997,7 +17994,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D89F09C03C5300E4CFCA /* ShellScript */ = { @@ -18011,7 +18008,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8A109C03C5600E4CFCA /* ShellScript */ = { @@ -18025,7 +18022,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8A309C03C5F00E4CFCA /* ShellScript */ = { @@ -18039,7 +18036,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8A509C03C6200E4CFCA /* ShellScript */ = { @@ -18053,7 +18050,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8A909C03C6900E4CFCA /* ShellScript */ = { @@ -18067,7 +18064,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8AB09C03C6D00E4CFCA /* ShellScript */ = { @@ -18081,7 +18078,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8AD09C03C7000E4CFCA /* ShellScript */ = { @@ -18095,7 +18092,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8AF09C03C7300E4CFCA /* ShellScript */ = { @@ -18109,7 +18106,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8B109C03C7600E4CFCA /* ShellScript */ = { @@ -18123,7 +18120,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8B309C03C7900E4CFCA /* ShellScript */ = { @@ -18137,7 +18134,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8B509C03C7C00E4CFCA /* ShellScript */ = { @@ -18151,7 +18148,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8B709C03C7F00E4CFCA /* ShellScript */ = { @@ -18165,7 +18162,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8B909C03C8200E4CFCA /* ShellScript */ = { @@ -18179,7 +18176,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8BB09C03C8600E4CFCA /* ShellScript */ = { @@ -18193,7 +18190,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8BD09C03C8900E4CFCA /* ShellScript */ = { @@ -18207,7 +18204,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8BF09C03C8D00E4CFCA /* ShellScript */ = { @@ -18221,7 +18218,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8C109C03C9000E4CFCA /* ShellScript */ = { @@ -18235,7 +18232,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8C309C03C9300E4CFCA /* ShellScript */ = { @@ -18249,7 +18246,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8C509C03C9600E4CFCA /* ShellScript */ = { @@ -18263,7 +18260,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8C709C03C9900E4CFCA /* ShellScript */ = { @@ -18277,7 +18274,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8C909C03C9E00E4CFCA /* ShellScript */ = { @@ -18291,7 +18288,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8CB09C03CA100E4CFCA /* ShellScript */ = { @@ -18305,7 +18302,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8CD09C03CA400E4CFCA /* ShellScript */ = { @@ -18319,7 +18316,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8CF09C03CA800E4CFCA /* ShellScript */ = { @@ -18333,7 +18330,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8D109C03CAB00E4CFCA /* ShellScript */ = { @@ -18347,7 +18344,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8D309C03CAE00E4CFCA /* ShellScript */ = { @@ -18361,7 +18358,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8D709C03CB400E4CFCA /* ShellScript */ = { @@ -18375,7 +18372,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8D909C03CB700E4CFCA /* ShellScript */ = { @@ -18389,7 +18386,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8DB09C03CBA00E4CFCA /* ShellScript */ = { @@ -18403,7 +18400,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8DD09C03CBD00E4CFCA /* ShellScript */ = { @@ -18417,7 +18414,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8DF09C03CC000E4CFCA /* ShellScript */ = { @@ -18431,7 +18428,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8E109C03CC400E4CFCA /* ShellScript */ = { @@ -18445,7 +18442,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8E309C03CCA00E4CFCA /* ShellScript */ = { @@ -18459,7 +18456,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8E509C03CCD00E4CFCA /* ShellScript */ = { @@ -18473,7 +18470,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8E709C03CD100E4CFCA /* ShellScript */ = { @@ -18487,7 +18484,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8E909C03CD500E4CFCA /* ShellScript */ = { @@ -18501,7 +18498,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8EB09C03CD800E4CFCA /* ShellScript */ = { @@ -18515,7 +18512,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8ED09C03CDB00E4CFCA /* ShellScript */ = { @@ -18529,7 +18526,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8EF09C03CDE00E4CFCA /* ShellScript */ = { @@ -18543,7 +18540,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8F109C03CE100E4CFCA /* ShellScript */ = { @@ -18557,7 +18554,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8F309C03CE400E4CFCA /* ShellScript */ = { @@ -18571,7 +18568,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8F509C03CE800E4CFCA /* ShellScript */ = { @@ -18585,7 +18582,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8F709C03CEA00E4CFCA /* ShellScript */ = { @@ -18599,7 +18596,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8F909C03CED00E4CFCA /* ShellScript */ = { @@ -18613,7 +18610,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8FB09C03CF100E4CFCA /* ShellScript */ = { @@ -18627,7 +18624,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8FD09C03CF400E4CFCA /* ShellScript */ = { @@ -18641,7 +18638,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D8FF09C03CF700E4CFCA /* ShellScript */ = { @@ -18655,7 +18652,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90109C03D0000E4CFCA /* ShellScript */ = { @@ -18669,7 +18666,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90309C03D0400E4CFCA /* ShellScript */ = { @@ -18683,7 +18680,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90509C03D0700E4CFCA /* ShellScript */ = { @@ -18697,7 +18694,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90709C03D0B00E4CFCA /* ShellScript */ = { @@ -18711,7 +18708,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90909C03D0E00E4CFCA /* ShellScript */ = { @@ -18725,7 +18722,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90B09C03D1100E4CFCA /* ShellScript */ = { @@ -18739,7 +18736,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90D09C03D1400E4CFCA /* ShellScript */ = { @@ -18753,7 +18750,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D90F09C03D1800E4CFCA /* ShellScript */ = { @@ -18767,7 +18764,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91109C03D1B00E4CFCA /* ShellScript */ = { @@ -18781,7 +18778,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91309C03D1E00E4CFCA /* ShellScript */ = { @@ -18795,7 +18792,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91509C03D2100E4CFCA /* ShellScript */ = { @@ -18809,7 +18806,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91709C03D2400E4CFCA /* ShellScript */ = { @@ -18823,7 +18820,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91909C03D2700E4CFCA /* ShellScript */ = { @@ -18837,7 +18834,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91D09C03D3000E4CFCA /* ShellScript */ = { @@ -18851,7 +18848,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D91F09C03D3300E4CFCA /* ShellScript */ = { @@ -18865,7 +18862,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92109C03D3600E4CFCA /* ShellScript */ = { @@ -18879,7 +18876,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92309C03D3A00E4CFCA /* ShellScript */ = { @@ -18893,7 +18890,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92509C03D3D00E4CFCA /* ShellScript */ = { @@ -18907,7 +18904,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92709C03D4000E4CFCA /* ShellScript */ = { @@ -18921,7 +18918,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92909C03D4400E4CFCA /* ShellScript */ = { @@ -18935,7 +18932,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92B09C03D4700E4CFCA /* ShellScript */ = { @@ -18949,7 +18946,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92D09C03D4A00E4CFCA /* ShellScript */ = { @@ -18963,7 +18960,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D92F09C03D4E00E4CFCA /* ShellScript */ = { @@ -18977,7 +18974,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93109C03D5100E4CFCA /* ShellScript */ = { @@ -18991,7 +18988,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93309C03D5400E4CFCA /* ShellScript */ = { @@ -19005,7 +19002,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93509C03D5700E4CFCA /* ShellScript */ = { @@ -19019,7 +19016,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93709C03D5B00E4CFCA /* ShellScript */ = { @@ -19033,7 +19030,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93909C03D5E00E4CFCA /* ShellScript */ = { @@ -19047,7 +19044,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93B09C03D6200E4CFCA /* ShellScript */ = { @@ -19061,7 +19058,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93D09C03D6C00E4CFCA /* ShellScript */ = { @@ -19075,7 +19072,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D93F09C03D6F00E4CFCA /* ShellScript */ = { @@ -19089,7 +19086,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94109C03D7200E4CFCA /* ShellScript */ = { @@ -19103,7 +19100,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94309C03D7600E4CFCA /* ShellScript */ = { @@ -19117,7 +19114,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94509C03D7A00E4CFCA /* ShellScript */ = { @@ -19131,7 +19128,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94709C03D7E00E4CFCA /* ShellScript */ = { @@ -19145,7 +19142,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94909C03D8100E4CFCA /* ShellScript */ = { @@ -19159,7 +19156,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94B09C03D8500E4CFCA /* ShellScript */ = { @@ -19173,7 +19170,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94D09C03D8D00E4CFCA /* ShellScript */ = { @@ -19187,7 +19184,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D94F09C03D9100E4CFCA /* ShellScript */ = { @@ -19201,7 +19198,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95109C03D9400E4CFCA /* ShellScript */ = { @@ -19215,7 +19212,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95309C03D9800E4CFCA /* ShellScript */ = { @@ -19229,7 +19226,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95509C03D9C00E4CFCA /* ShellScript */ = { @@ -19243,7 +19240,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95709C03DA100E4CFCA /* ShellScript */ = { @@ -19257,7 +19254,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95909C03DA400E4CFCA /* ShellScript */ = { @@ -19271,7 +19268,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95B09C03DA800E4CFCA /* ShellScript */ = { @@ -19285,7 +19282,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95D09C03DAB00E4CFCA /* ShellScript */ = { @@ -19299,7 +19296,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D95F09C03DAE00E4CFCA /* ShellScript */ = { @@ -19313,7 +19310,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96109C03DB100E4CFCA /* ShellScript */ = { @@ -19327,7 +19324,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96309C03DB500E4CFCA /* ShellScript */ = { @@ -19341,7 +19338,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96509C03DB900E4CFCA /* ShellScript */ = { @@ -19355,7 +19352,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96709C03DBC00E4CFCA /* ShellScript */ = { @@ -19369,7 +19366,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96909C03DBF00E4CFCA /* ShellScript */ = { @@ -19383,7 +19380,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96B09C03DC600E4CFCA /* ShellScript */ = { @@ -19397,7 +19394,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96D09C03DCA00E4CFCA /* ShellScript */ = { @@ -19411,7 +19408,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D96F09C03DCD00E4CFCA /* ShellScript */ = { @@ -19425,7 +19422,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97109C03DD000E4CFCA /* ShellScript */ = { @@ -19439,7 +19436,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97309C03DD300E4CFCA /* ShellScript */ = { @@ -19453,7 +19450,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97509C03DD700E4CFCA /* ShellScript */ = { @@ -19467,7 +19464,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97709C03DDA00E4CFCA /* ShellScript */ = { @@ -19481,7 +19478,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97909C03DDD00E4CFCA /* ShellScript */ = { @@ -19495,7 +19492,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97B09C03DE000E4CFCA /* ShellScript */ = { @@ -19509,7 +19506,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97D09C03DE400E4CFCA /* ShellScript */ = { @@ -19523,7 +19520,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D97F09C03DE700E4CFCA /* ShellScript */ = { @@ -19537,7 +19534,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98109C03DEA00E4CFCA /* ShellScript */ = { @@ -19551,7 +19548,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98309C03DEE00E4CFCA /* ShellScript */ = { @@ -19565,7 +19562,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98509C03DF100E4CFCA /* ShellScript */ = { @@ -19579,7 +19576,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98709C03DF400E4CFCA /* ShellScript */ = { @@ -19593,7 +19590,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98909C03DF700E4CFCA /* ShellScript */ = { @@ -19607,7 +19604,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98B09C03DFC00E4CFCA /* ShellScript */ = { @@ -19621,7 +19618,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98D09C03E0500E4CFCA /* ShellScript */ = { @@ -19635,7 +19632,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D98F09C03E0F00E4CFCA /* ShellScript */ = { @@ -19649,7 +19646,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99109C03E1200E4CFCA /* ShellScript */ = { @@ -19663,7 +19660,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99309C03E1600E4CFCA /* ShellScript */ = { @@ -19677,7 +19674,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99509C03E1900E4CFCA /* ShellScript */ = { @@ -19691,7 +19688,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99709C03E1C00E4CFCA /* ShellScript */ = { @@ -19705,7 +19702,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99909C03E2000E4CFCA /* ShellScript */ = { @@ -19719,7 +19716,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99B09C03E2300E4CFCA /* ShellScript */ = { @@ -19733,7 +19730,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99D09C03E2600E4CFCA /* ShellScript */ = { @@ -19747,7 +19744,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D99F09C03E2900E4CFCA /* ShellScript */ = { @@ -19761,7 +19758,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9A109C03E2E00E4CFCA /* ShellScript */ = { @@ -19775,7 +19772,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9A309C03E3200E4CFCA /* ShellScript */ = { @@ -19789,7 +19786,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9A509C03E3600E4CFCA /* ShellScript */ = { @@ -19803,7 +19800,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9A709C03E3A00E4CFCA /* ShellScript */ = { @@ -19817,7 +19814,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9A909C03E3D00E4CFCA /* ShellScript */ = { @@ -19831,7 +19828,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9AB09C03E4200E4CFCA /* ShellScript */ = { @@ -19845,7 +19842,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9AD09C03E4600E4CFCA /* ShellScript */ = { @@ -19859,7 +19856,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9AF09C03E4B00E4CFCA /* ShellScript */ = { @@ -19873,7 +19870,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9B109C03E4E00E4CFCA /* ShellScript */ = { @@ -19887,7 +19884,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9B309C03E5100E4CFCA /* ShellScript */ = { @@ -19901,7 +19898,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9B509C03E5700E4CFCA /* ShellScript */ = { @@ -19915,7 +19912,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9B709C03E5B00E4CFCA /* ShellScript */ = { @@ -19929,7 +19926,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9B909C03E5E00E4CFCA /* ShellScript */ = { @@ -19943,7 +19940,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9BB09C03E6200E4CFCA /* ShellScript */ = { @@ -19957,7 +19954,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9BD09C03E6500E4CFCA /* ShellScript */ = { @@ -19971,7 +19968,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9BF09C03E6900E4CFCA /* ShellScript */ = { @@ -19985,7 +19982,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9C109C03E6E00E4CFCA /* ShellScript */ = { @@ -19999,7 +19996,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9C309C03E7100E4CFCA /* ShellScript */ = { @@ -20013,7 +20010,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9C509C03E7400E4CFCA /* ShellScript */ = { @@ -20027,7 +20024,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9C709C03E7800E4CFCA /* ShellScript */ = { @@ -20041,7 +20038,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9C909C03E7C00E4CFCA /* ShellScript */ = { @@ -20055,7 +20052,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9CB09C03E7F00E4CFCA /* ShellScript */ = { @@ -20069,7 +20066,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9CD09C03E8400E4CFCA /* ShellScript */ = { @@ -20083,7 +20080,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9CF09C03E8700E4CFCA /* ShellScript */ = { @@ -20097,7 +20094,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9D109C03E8B00E4CFCA /* ShellScript */ = { @@ -20111,7 +20108,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9D309C03E8F00E4CFCA /* ShellScript */ = { @@ -20125,7 +20122,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3D9D509C03E9300E4CFCA /* ShellScript */ = { @@ -20139,7 +20136,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFA3DBA209C0424C00E4CFCA /* ShellScript */ = { @@ -20153,7 +20150,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBB509C033DF00353F4D /* ShellScript */ = { @@ -20167,7 +20164,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBC709C03AAF00353F4D /* ShellScript */ = { @@ -20181,7 +20178,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBCB09C03AEE00353F4D /* ShellScript */ = { @@ -20195,7 +20192,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBCD09C03AF400353F4D /* ShellScript */ = { @@ -20209,7 +20206,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBCF09C03AF800353F4D /* ShellScript */ = { @@ -20223,7 +20220,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBD109C03AFC00353F4D /* ShellScript */ = { @@ -20237,7 +20234,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBD309C03B0000353F4D /* ShellScript */ = { @@ -20251,7 +20248,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFCCCBD509C03B0500353F4D /* ShellScript */ = { @@ -20265,7 +20262,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFD51B2C0F063B4A00471C02 /* ShellScript */ = { @@ -20279,7 +20276,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFE2A4660E2E904600ADB298 /* ShellScript */ = { @@ -20293,7 +20290,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFE30BF80E52B14700CCF4A5 /* ShellScript */ = { @@ -20307,7 +20304,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFE6A1930CDD7B2E002805BF /* ShellScript */ = { @@ -20321,7 +20318,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFE6A4290CDD7FAA002805BF /* ShellScript */ = { @@ -20335,7 +20332,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFF463430C4403E400EE6509 /* ShellScript */ = { @@ -20349,7 +20346,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; AFF463680C440AEF00EE6509 /* ShellScript */ = { @@ -20363,7 +20360,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -20435,9 +20432,6 @@ buildActionMask = 2147483647; files = ( AF35E8900E63823600691F2F /* XScreenSaverSubclass.m in Sources */, - AF35E8910E63823600691F2F /* sonar-icmp.c in Sources */, - AF35E8920E63823600691F2F /* sonar-sim.c in Sources */, - AF35E8930E63823600691F2F /* sonar.c in Sources */, AF35EB260E6382BA00691F2F /* jigsaw.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; -- 2.30.2