projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ftp://ftp.krokus.ru/pub/OpenBSD/distfiles/xscreensaver-4.06.tar.gz
[xscreensaver]
/
hacks
/
glx
/
xpm-ximage.c
diff --git
a/hacks/glx/xpm-ximage.c
b/hacks/glx/xpm-ximage.c
index 77210ecaab3defae89686a23b2674ee2f23ea53d..43ac2ae64bdbb70938013b72e10dca424d43ca7b 100644
(file)
--- a/
hacks/glx/xpm-ximage.c
+++ b/
hacks/glx/xpm-ximage.c
@@
-25,7
+25,12
@@
extern char *progname;
#if defined(HAVE_GDK_PIXBUF)
# include <gdk-pixbuf/gdk-pixbuf.h>
#if defined(HAVE_GDK_PIXBUF)
# include <gdk-pixbuf/gdk-pixbuf.h>
-# include <gdk-pixbuf/gdk-pixbuf-xlib.h>
+
+# ifdef HAVE_GTK2
+# include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>
+# else /* !HAVE_GTK2 */
+# include <gdk-pixbuf/gdk-pixbuf-xlib.h>
+# endif /* !HAVE_GTK2 */
/* Returns an XImage structure containing the bits of the given XPM image.
/* Returns an XImage structure containing the bits of the given XPM image.
@@
-47,16
+52,26
@@
xpm_to_ximage_1 (Display *dpy, Visual *visual, Colormap cmap,
{
GdkPixbuf *pb;
static int initted = 0;
{
GdkPixbuf *pb;
static int initted = 0;
+#ifdef HAVE_GTK2
+ GError *gerr = NULL;
+#endif
if (!initted)
{
if (!initted)
{
+#ifdef HAVE_GTK2
+ g_type_init ();
+#endif
gdk_pixbuf_xlib_init (dpy, DefaultScreen (dpy));
xlib_rgb_init (dpy, DefaultScreenOfDisplay (dpy));
initted = 1;
}
pb = (filename
gdk_pixbuf_xlib_init (dpy, DefaultScreen (dpy));
xlib_rgb_init (dpy, DefaultScreenOfDisplay (dpy));
initted = 1;
}
pb = (filename
+#ifdef HAVE_GTK2
+ ? gdk_pixbuf_new_from_file (filename, &gerr)
+#else
? gdk_pixbuf_new_from_file (filename)
? gdk_pixbuf_new_from_file (filename)
+#endif /* HAVE_GTK2 */
: gdk_pixbuf_new_from_xpm_data ((const char **) xpm_data));
if (pb)
{
: gdk_pixbuf_new_from_xpm_data ((const char **) xpm_data));
if (pb)
{
@@
-114,13
+129,18
@@
xpm_to_ximage_1 (Display *dpy, Visual *visual, Colormap cmap,
}
row += stride;
}
}
row += stride;
}
-
/* gdk_pixbuf_unref (pb); --
#### does doing this free colors? */
+
gdk_pixbuf_unref (pb); /*
#### does doing this free colors? */
return image;
}
else if (filename)
{
return image;
}
else if (filename)
{
+#ifdef HAVE_GTK2
+ fprintf (stderr, "%s: %s\n", progname, gerr->message);
+ g_error_free (gerr);
+#else
fprintf (stderr, "%s: unable to load %s\n", progname, filename);
fprintf (stderr, "%s: unable to load %s\n", progname, filename);
+#endif /* HAVE_GTK2 */
exit (1);
}
else
exit (1);
}
else
@@
-185,7
+205,7
@@
xpm_to_ximage_1 (Display *dpy, Visual *visual, Colormap cmap,
xpm_data = 0;
if (! XpmReadFileToData ((char *) filename, &xpm_data))
{
xpm_data = 0;
if (! XpmReadFileToData ((char *) filename, &xpm_data))
{
- fprintf (stderr, "%s: unable to read XPM file %
f
\n",
+ fprintf (stderr, "%s: unable to read XPM file %
s
\n",
progname, filename);
exit (1);
}
progname, filename);
exit (1);
}
@@
-220,7
+240,7
@@
xpm_to_ximage_1 (Display *dpy, Visual *visual, Colormap cmap,
const char *c = xpm_image.colorTable[i].c_color;
if (!c)
{
const char *c = xpm_image.colorTable[i].c_color;
if (!c)
{
- fprintf(stderr, "%s: bogus color table? (
$
d)\n", progname, i);
+ fprintf(stderr, "%s: bogus color table? (
%
d)\n", progname, i);
exit (1);
}
else if (!strncasecmp (c, "None", 4))
exit (1);
}
else if (!strncasecmp (c, "None", 4))