http://ftp.x.org/contrib/applications/xscreensaver-2.23.tar.gz
[xscreensaver] / hacks / greynetic.c
index 4dd3f172b608578507d2bff2d0dd72f5b67e5f0c..0ffb332a4e2d75c6fd3dc46e3c5a2fab20080728 100644 (file)
@@ -1,4 +1,5 @@
-/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski <jwz@netscape.com>
+/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997
+ *  Jamie Zawinski <jwz@netscape.com>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
 
 #define NBITS 12
 
-#include <X11/bitmaps/stipple>
-#include <X11/bitmaps/cross_weave>
-#include <X11/bitmaps/dimple1>
-#include <X11/bitmaps/dimple3>
-#include <X11/bitmaps/flipped_gray>
-#include <X11/bitmaps/gray1>
-#include <X11/bitmaps/gray3>
-#include <X11/bitmaps/hlines2>
-#include <X11/bitmaps/light_gray>
-#include <X11/bitmaps/root_weave>
-#include <X11/bitmaps/vlines2>
-#include <X11/bitmaps/vlines3>
+#ifndef VMS
+# include <X11/bitmaps/stipple>
+# include <X11/bitmaps/cross_weave>
+# include <X11/bitmaps/dimple1>
+# include <X11/bitmaps/dimple3>
+# include <X11/bitmaps/flipped_gray>
+# include <X11/bitmaps/gray1>
+# include <X11/bitmaps/gray3>
+# include <X11/bitmaps/hlines2>
+# include <X11/bitmaps/light_gray>
+# include <X11/bitmaps/root_weave>
+# include <X11/bitmaps/vlines2>
+# include <X11/bitmaps/vlines3>
+#else /* VMS */
+# include "sys$common:[decw$include.bitmaps]stipple.xbm"
+# include "sys$common:[decw$include.bitmaps]cross_weave.xbm"
+# include "sys$common:[decw$include.bitmaps]dimple1.xbm"
+# include "sys$common:[decw$include.bitmaps]dimple3.xbm"
+# include "sys$common:[decw$include.bitmaps]flipped_gray.xbm"
+# include "sys$common:[decw$include.bitmaps]gray1.xbm"
+# include "sys$common:[decw$include.bitmaps]gray3.xbm"
+# include "sys$common:[decw$include.bitmaps]hlines2.xbm"
+# include "sys$common:[decw$include.bitmaps]light_gray.xbm"
+# include "sys$common:[decw$include.bitmaps]root_weave.xbm"
+# include "sys$common:[decw$include.bitmaps]vlines2.xbm"
+# include "sys$common:[decw$include.bitmaps]vlines3.xbm"
+#endif /* VMS */
 
 static Pixmap pixmaps [NBITS];
 static GC gc;
@@ -33,9 +49,7 @@ static unsigned long fg, bg, pixels [512];
 static int npixels;
 
 static void
-init_greynetic (dpy, window)
-     Display *dpy;
-     Window window;
+init_greynetic (Display *dpy, Window window)
 {
   int i;
   XGCValues gcv;
@@ -71,9 +85,7 @@ init_greynetic (dpy, window)
 }
 
 static void
-greynetic (dpy, window)
-     Display *dpy;
-     Window window;
+greynetic (Display *dpy, Window window)
 {
   static int tick = 500, xlim, ylim;
   static Colormap cmap;
@@ -100,6 +112,7 @@ greynetic (dpy, window)
   gcv.stipple = pixmaps [random () % NBITS];
   if (mono_p)
     {
+    MONO:
       if (random () & 1)
        gcv.foreground = fg, gcv.background = bg;
       else
@@ -127,6 +140,11 @@ greynetic (dpy, window)
       gcv.background = bgc.pixel;
       goto DONE;
     REUSE:
+      if (npixels <= 0)
+       {
+         mono_p = 1;
+         goto MONO;
+       }
       gcv.foreground = pixels [random () % npixels];
       gcv.background = pixels [random () % npixels];
     DONE:
@@ -141,21 +159,19 @@ greynetic (dpy, window)
 char *progclass = "Greynetic";
 
 char *defaults [] = {
-  "Greynetic.background:       black",         /* to placate SGI */
-  "Greynetic.foreground:       white",
+  ".background:        black",
+  ".foreground:        white",
   "*delay:     0",
   0
 };
 
 XrmOptionDescRec options [] = {
-  { "-delay",          ".delay",       XrmoptionSepArg, 0 }
+  { "-delay",          ".delay",       XrmoptionSepArg, 0 },
+  { 0, 0, 0, 0 }
 };
-int options_size = (sizeof (options) / sizeof (options[0]));
 
 void
-screenhack (dpy, window)
-     Display *dpy;
-     Window window;
+screenhack (Display *dpy, Window window)
 {
   init_greynetic (dpy, window);
   while (1)