]> git.pld-linux.org Git - packages/imlib.git/blob - imlib-giflib.patch
- rebuild without libjpeg.la
[packages/imlib.git] / imlib-giflib.patch
1 --- imlib-1.9.15/gdk_imlib/io-gif.c.orig        2014-02-02 08:59:39.063076948 +0100
2 +++ imlib-1.9.15/gdk_imlib/io-gif.c     2014-02-02 09:09:41.823051652 +0100
3 @@ -10,6 +10,12 @@
4  #else
5  #include <gif_lib.h>
6  
7 +static void print_gif_error(int error_code)
8 +{
9 +  const char *err = GifErrorString(error_code);
10 +  fprintf(stderr, "gdk_imlib: giflib error %d: %s.\n", error_code, err);
11 +}
12 +
13  unsigned char      *
14  loader_gif(FILE *f, int *w, int *h, int *t)
15  {
16 @@ -29,6 +29,7 @@
17    int                 intjump[] = {8, 8, 4, 2};
18    int                 istransp, transp;
19    int                 fd;
20 +  int                 giferr;
21  
22    done = 0;
23    istransp = 0;
24 @@ -30,7 +36,7 @@
25    fd = fileno(f);
26    /* Apparently rewind(f) isn't sufficient */
27    lseek(fd, (long) 0, 0);
28 -  gif = DGifOpenFileHandle(fd);
29 +  gif = DGifOpenFileHandle(fd, &giferr);
30  
31    transp = -1;
32    data = NULL;
33 @@ -43,14 +49,14 @@
34      {
35        if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
36         {
37 -         PrintGifError();
38 +         print_gif_error(gif->Error);
39           rec = TERMINATE_RECORD_TYPE;
40         }
41        if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
42         {
43           if (DGifGetImageDesc(gif) == GIF_ERROR)
44             {
45 -             PrintGifError();
46 +             print_gif_error(gif->Error);
47               rec = TERMINATE_RECORD_TYPE;
48             }
49           *w = gif->Image.Width;
50 @@ -68,13 +69,13 @@
51           rows = malloc(*h * sizeof(GifRowType *));
52           if (!rows)
53             {
54 -             DGifCloseFile(gif);
55 +             DGifCloseFile(gif, &giferr);
56               return NULL;
57             }
58           data = _gdk_malloc_image(*w, *h);
59           if (!data)
60             {
61 -             DGifCloseFile(gif);
62 +             DGifCloseFile(gif, &giferr);
63               free(rows);
64               return NULL;
65             }
66 @@ -85,7 +86,7 @@
67               rows[i] = malloc(*w * sizeof(GifPixelType));
68               if (!rows[i])
69                 {
70 -                 DGifCloseFile(gif);
71 +                 DGifCloseFile(gif, &giferr);
72                   for (i = 0; i < *h; i++)
73                     if (rows[i])
74                       free(rows[i]);
75 @@ -174,7 +175,7 @@
76             }
77         }
78      }
79 -  DGifCloseFile(gif);
80 +  DGifCloseFile(gif, &giferr);
81    for (i = 0; i < *h; i++)
82      free(rows[i]);
83    free(rows);
84 --- imlib-1.9.15/Imlib/load.c.orig      2014-02-02 08:59:39.119743612 +0100
85 +++ imlib-1.9.15/Imlib/load.c   2014-02-02 09:16:12.426368593 +0100
86 @@ -429,6 +429,12 @@
87  #endif /* HAVE_LIBTIFF */
88  
89  #ifdef HAVE_LIBGIF
90 +static void print_gif_error(int error_code)
91 +{
92 +  const char *err = GifErrorString(error_code);
93 +  fprintf(stderr, "gdk_imlib: giflib error %d: %s.\n", error_code, err);
94 +}
95 +
96  unsigned char      *
97  _LoadGIF(ImlibData * id, FILE *f, int *w, int *h, int *t)
98  {
99 @@ -448,6 +448,7 @@
100    int                 intjump[] = {8, 8, 4, 2};
101    int                 istransp, transp;
102    int                 fd;
103 +  int                 giferr;
104  
105    done = 0;
106    istransp = 0;
107 @@ -452,7 +458,7 @@
108    fd = fileno(f);
109    /* Apparently rewind(f) isn't sufficient */
110    lseek(fd, (long) 0, 0);
111 -  gif = DGifOpenFileHandle(fd);
112 +  gif = DGifOpenFileHandle(fd, &giferr);
113  
114    if (!gif)
115      return NULL;
116 @@ -460,14 +466,14 @@
117      {
118        if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
119         {
120 -         PrintGifError();
121 +         print_gif_error(gif->Error);
122           rec = TERMINATE_RECORD_TYPE;
123         }
124        if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
125         {
126           if (DGifGetImageDesc(gif) == GIF_ERROR)
127             {
128 -             PrintGifError();
129 +             print_gif_error(gif->Error);
130               rec = TERMINATE_RECORD_TYPE;
131             }
132           *w = gif->Image.Width;
133 @@ -486,13 +486,13 @@
134           rows = malloc(*h * sizeof(GifRowType *));
135           if (!rows)
136             {
137 -             DGifCloseFile(gif);
138 +             DGifCloseFile(gif, &giferr);
139               return NULL;
140             }
141           data = _imlib_malloc_image(*w, *h);
142           if (!data)
143             {
144 -             DGifCloseFile(gif);
145 +             DGifCloseFile(gif, &giferr);
146               free(rows);
147               return NULL;
148             }
149 @@ -503,7 +503,7 @@
150               rows[i] = malloc(*w * sizeof(GifPixelType));
151               if (!rows[i])
152                 {
153 -                 DGifCloseFile(gif);
154 +                 DGifCloseFile(gif, &giferr);
155                   for (i = 0; i < *h; i++)
156                     if (rows[i])
157                       free(rows[i]);
158 @@ -592,7 +592,7 @@
159             }
160         }
161      }
162 -  DGifCloseFile(gif);
163 +  DGifCloseFile(gif, &giferr);
164    for (i = 0; i < *h; i++)
165      free(rows[i]);
166    free(rows);
This page took 0.120959 seconds and 3 git commands to generate.