http://ftp.x.org/contrib/applications/xscreensaver-2.23.tar.gz
[xscreensaver] / hacks / flame.c
index d723f055e8cee09572da6171878936590a477f99..851b26151a84dfd79b34fe5545d683383848f64b 100644 (file)
@@ -175,6 +175,14 @@ recurse (double x, double y, int l, Display *dpy, Window win)
     {
       for (i = 0; i < snum; i++)
        {
+
+         /* Scale back when values get very large. Spot sez:
+            "I think this happens on HPUX.  I think it's non-IEEE
+            to generate an exception instead of a silent NaN."
+          */
+         if ((abs(x) > 1.0E5) || (abs(y) > 1.0E5))
+           x = x / y;
+
          nx = f[0][0][i] * x + f[0][1][i] * y + f[0][2][i];
          ny = f[1][0][i] * x + f[1][1][i] * y + f[1][2][i];
          if (i < anum)
@@ -373,8 +381,8 @@ int matherr(x)
 char *progclass = "Flame";
 
 char *defaults [] = {
-  "Flame.background:   black",         /* to placate SGI */
-  "Flame.foreground:   white",
+  ".background:        black",
+  ".foreground:        white",
   "*colors:    64",
   "*iterations:        25",
   "*delay:     50000",