/* xscreensaver, Copyright (c) 1992, 1997, 1998
- * Jamie Zawinski <jwz@netscape.com>
+ * Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
if (!strcmp (buf,"off") || !strcmp (buf, "false") || !strcmp (buf,"no"))
return 0;
fprintf (stderr, "%s: %s must be boolean, not %s.\n",
- progname, res_class, buf);
+ progname, res_name, buf);
return 0;
}
{
int val;
char c, *s = get_string_resource (res_name, res_class);
+ char *ss = s;
if (!s) return 0;
- if (1 == sscanf (s, " %d %c", &val, &c))
+
+ while (*ss && *ss <= ' ') ss++; /* skip whitespace */
+
+ if (ss[0] == '0' && (ss[1] == 'x' || ss[1] == 'X')) /* 0x: parse as hex */
{
- free (s);
- return val;
+ if (1 == sscanf (ss+2, "%x %c", &val, &c))
+ {
+ free (s);
+ return val;
+ }
}
+ else /* else parse as dec */
+ {
+ if (1 == sscanf (ss, "%d %c", &val, &c))
+ {
+ free (s);
+ return val;
+ }
+ }
+
fprintf (stderr, "%s: %s must be an integer, not %s.\n",
progname, res_name, s);
free (s);
return color.pixel;
DEFAULT:
if (s) free (s);
- return (strcmp (res_class, "Background")
- ? WhitePixel (dpy, DefaultScreen (dpy))
- : BlackPixel (dpy, DefaultScreen (dpy)));
+ return ((strlen(res_class) >= 10 &&
+ !strcmp ("Background", res_class + strlen(res_class) - 10))
+ ? BlackPixel (dpy, DefaultScreen (dpy))
+ : WhitePixel (dpy, DefaultScreen (dpy)));
}