summaryrefslogtreecommitdiff
path: root/extra/imlib/imlib-giflib5.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/imlib/imlib-giflib5.patch')
-rw-r--r--extra/imlib/imlib-giflib5.patch110
1 files changed, 110 insertions, 0 deletions
diff --git a/extra/imlib/imlib-giflib5.patch b/extra/imlib/imlib-giflib5.patch
new file mode 100644
index 000000000..affd206fc
--- /dev/null
+++ b/extra/imlib/imlib-giflib5.patch
@@ -0,0 +1,110 @@
+diff -Naur imlib-1.9.15-orig/Imlib/load.c imlib-1.9.15/Imlib/load.c
+--- imlib-1.9.15-orig/Imlib/load.c 2013-07-29 17:33:54.656601713 -0400
++++ imlib-1.9.15/Imlib/load.c 2013-07-29 17:39:39.063991823 -0400
+@@ -444,6 +444,7 @@
+ int intjump[] = {8, 8, 4, 2};
+ int istransp, transp;
+ int fd;
++ int Error;
+
+ done = 0;
+ istransp = 0;
+@@ -454,7 +455,7 @@
+ fd = fileno(f);
+ /* Apparently rewind(f) isn't sufficient */
+ lseek(fd, (long) 0, 0);
+- gif = DGifOpenFileHandle(fd);
++ gif = DGifOpenFileHandle(fd, &Error);
+
+ if (!gif)
+ return NULL;
+diff -Naur imlib-1.9.15-orig/gdk_imlib/io-gif.c imlib-1.9.15/gdk_imlib/io-gif.c
+--- imlib-1.9.15-orig/gdk_imlib/io-gif.c 2013-07-29 17:33:54.656601713 -0400
++++ imlib-1.9.15/gdk_imlib/io-gif.c 2013-07-29 17:37:11.941783903 -0400
+@@ -23,6 +23,7 @@
+ int intjump[] = {8, 8, 4, 2};
+ int istransp, transp;
+ int fd;
++ int Error;
+
+ done = 0;
+ istransp = 0;
+@@ -30,7 +31,7 @@
+ fd = fileno(f);
+ /* Apparently rewind(f) isn't sufficient */
+ lseek(fd, (long) 0, 0);
+- gif = DGifOpenFileHandle(fd);
++ gif = DGifOpenFileHandle(fd, &Error);
+
+ transp = -1;
+ data = NULL;
+diff -Naur imlib-1.9.15-orig/Imlib/load.c imlib-1.9.15/Imlib/load.c
+--- imlib-1.9.15-orig/Imlib/load.c 2013-07-29 22:06:15.111285191 -0400
++++ imlib-1.9.15/Imlib/load.c 2013-07-29 22:07:36.926673905 -0400
+@@ -6,6 +6,14 @@
+
+ #define G_MAXINT ((int) 0x7fffffff)
+
++static void
++localPrintGifError(void)
++{
++ int ErrorCode=0;
++ GifErrorString(ErrorCode);
++ fprintf(stderr, "\nGIF-LIB error: %i.\n", ErrorCode);
++}
++
+ /* Split the ID - damages input */
+
+ static char *
+@@ -462,14 +470,14 @@
+ {
+ if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
+ {
+- PrintGifError();
++ localPrintGifError();
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
+ {
+ if (DGifGetImageDesc(gif) == GIF_ERROR)
+ {
+- PrintGifError();
++ localPrintGifError();
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ *w = gif->Image.Width;
+diff -Naur imlib-1.9.15-orig/gdk_imlib/io-gif.c imlib-1.9.15/gdk_imlib/io-gif.c
+--- imlib-1.9.15-orig/gdk_imlib/io-gif.c 2013-07-29 22:06:15.111285191 -0400
++++ imlib-1.9.15/gdk_imlib/io-gif.c 2013-07-29 22:08:46.182265058 -0400
+@@ -10,6 +10,14 @@
+ #else
+ #include <gif_lib.h>
+
++static void
++localPrintGifError(void)
++{
++ int ErrorCode=0;
++ GifErrorString(ErrorCode);
++ fprintf(stderr, "\nGIF-LIB error: %i.\n", ErrorCode);
++}
++
+ unsigned char *
+ loader_gif(FILE *f, int *w, int *h, int *t)
+ {
+@@ -43,14 +51,14 @@
+ {
+ if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
+ {
+- PrintGifError();
++ localPrintGifError();
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
+ {
+ if (DGifGetImageDesc(gif) == GIF_ERROR)
+ {
+- PrintGifError();
++ localPrintGifError();
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ *w = gif->Image.Width;