summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/swftools/files/swftools-0.9.2_giflib.patch')
-rw-r--r--media-gfx/swftools/files/swftools-0.9.2_giflib.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/media-gfx/swftools/files/swftools-0.9.2_giflib.patch b/media-gfx/swftools/files/swftools-0.9.2_giflib.patch
new file mode 100644
index 000000000000..913b5e3b08d1
--- /dev/null
+++ b/media-gfx/swftools/files/swftools-0.9.2_giflib.patch
@@ -0,0 +1,89 @@
+From 05c1df6a6da28734533722dc0ac99ea5b206a492 Mon Sep 17 00:00:00 2001
+From: Matthias Kramm <kramm@quiss.org>
+Date: Sat, 6 Jul 2013 12:09:53 -0700
+Subject: [PATCH] applied giflib patch from Jan Engelhardt
+
+---
+ src/gif2swf.c | 28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+diff --git a/src/gif2swf.c b/src/gif2swf.c
+index 2359da5..5e52ea8 100644
+--- a/src/gif2swf.c
++++ b/src/gif2swf.c
+@@ -222,6 +222,7 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id, int imgidx)
+
+ GifFileType *gft;
+ FILE *fi;
++ int ret;
+
+ if ((fi = fopen(sname, "rb")) == NULL) {
+ if (VERBOSE(1))
+@@ -230,13 +231,24 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id, int imgidx)
+ }
+ fclose(fi);
+
+- if ((gft = DGifOpenFileName(sname)) == NULL) {
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
++ gft = DGifOpenFileName(sname, NULL);
++#else
++ gft = DGifOpenFileName(sname);
++#endif
++ if (gft == NULL) {
+ fprintf(stderr, "%s is not a GIF file!\n", sname);
+ return t;
+ }
+
+- if (DGifSlurp(gft) != GIF_OK) {
++ if ((ret = DGifSlurp(gft)) != GIF_OK) {
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2
++ fprintf(stderr, "GIF-LIB: %s\n", GifErrorString());
++#elif defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
++ fprintf(stderr, "GIF-LIB: %s\n", GifErrorString(ret));
++#else
+ PrintGifError();
++#endif
+ return t;
+ }
+
+@@ -465,6 +475,7 @@ int CheckInputFile(char *fname, char **realname)
+ FILE *fi;
+ char *s = malloc(strlen(fname) + 5);
+ GifFileType *gft;
++ int ret;
+
+ if (!s)
+ exit(2);
+@@ -488,7 +499,12 @@ int CheckInputFile(char *fname, char **realname)
+ }
+ fclose(fi);
+
+- if ((gft = DGifOpenFileName(s)) == NULL) {
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
++ gft = DGifOpenFileName(s, NULL);
++#else
++ gft = DGifOpenFileName(s);
++#endif
++ if (gft == NULL) {
+ fprintf(stderr, "%s is not a GIF file!\n", fname);
+ return -1;
+ }
+@@ -498,8 +514,14 @@ int CheckInputFile(char *fname, char **realname)
+ if (global.max_image_height < gft->SHeight)
+ global.max_image_height = gft->SHeight;
+
+- if (DGifSlurp(gft) != GIF_OK) {
++ if ((ret = DGifSlurp(gft)) != GIF_OK) {
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2
++ fprintf(stderr, "GIF-LIB: %s\n", GifErrorString());
++#elif defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
++ fprintf(stderr, "GIF-LIB: %s\n", GifErrorString(ret));
++#else
+ PrintGifError();
++#endif
+ return -1;
+ }
+ // After DGifSlurp() call, gft->ImageCount become available
+--
+1.8.4
+