summaryrefslogtreecommitdiff
blob: 913b5e3b08d189377f46b6eb99fca250e8ffca33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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