rev |
line source |
pascal@22366
|
1 --- gdk_imlib/io-gif.c
|
pascal@22366
|
2 +++ gdk_imlib/io-gif.c
|
pascal@22366
|
3 @@ -10,6 +10,15 @@
|
pascal@22366
|
4 #else
|
pascal@22366
|
5 #include <gif_lib.h>
|
pascal@22366
|
6
|
pascal@22366
|
7 +static int ErrorCode;
|
pascal@22366
|
8 +static void PrintGifError(void)
|
pascal@22366
|
9 +{
|
pascal@22366
|
10 + char *Err = GifErrorString(ErrorCode);
|
pascal@22366
|
11 + if (Err != NULL)
|
pascal@22366
|
12 + fprintf(stderr, "GIF-LIB error: %s.\n", Err);
|
pascal@22366
|
13 + else fprintf(stderr, "GIF-LIB undefined error %d.\n", ErrorCode);
|
pascal@22366
|
14 +}
|
pascal@22366
|
15 +
|
pascal@22366
|
16 unsigned char *
|
pascal@22366
|
17 loader_gif(FILE *f, int *w, int *h, int *t)
|
pascal@22366
|
18 {
|
pascal@22366
|
19 @@ -30,7 +39,7 @@
|
pascal@22366
|
20 fd = fileno(f);
|
pascal@22366
|
21 /* Apparently rewind(f) isn't sufficient */
|
pascal@22366
|
22 lseek(fd, (long) 0, 0);
|
pascal@22366
|
23 - gif = DGifOpenFileHandle(fd);
|
pascal@22366
|
24 + gif = DGifOpenFileHandle(fd, &ErrorCode);
|
pascal@22366
|
25
|
pascal@22366
|
26 transp = -1;
|
pascal@22366
|
27 data = NULL;
|
pascal@22366
|
28 @@ -62,13 +71,13 @@
|
pascal@22366
|
29 rows = malloc(*h * sizeof(GifRowType *));
|
pascal@22366
|
30 if (!rows)
|
pascal@22366
|
31 {
|
pascal@22366
|
32 - DGifCloseFile(gif);
|
pascal@22366
|
33 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
34 return NULL;
|
pascal@22366
|
35 }
|
pascal@22366
|
36 data = _gdk_malloc_image(*w, *h);
|
pascal@22366
|
37 if (!data)
|
pascal@22366
|
38 {
|
pascal@22366
|
39 - DGifCloseFile(gif);
|
pascal@22366
|
40 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
41 free(rows);
|
pascal@22366
|
42 return NULL;
|
pascal@22366
|
43 }
|
pascal@22366
|
44 @@ -79,7 +88,7 @@
|
pascal@22366
|
45 rows[i] = malloc(*w * sizeof(GifPixelType));
|
pascal@22366
|
46 if (!rows[i])
|
pascal@22366
|
47 {
|
pascal@22366
|
48 - DGifCloseFile(gif);
|
pascal@22366
|
49 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
50 for (i = 0; i < *h; i++)
|
pascal@22366
|
51 if (rows[i])
|
pascal@22366
|
52 free(rows[i]);
|
pascal@22366
|
53 @@ -168,7 +177,7 @@
|
pascal@22366
|
54 }
|
pascal@22366
|
55 }
|
pascal@22366
|
56 }
|
pascal@22366
|
57 - DGifCloseFile(gif);
|
pascal@22366
|
58 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
59 for (i = 0; i < *h; i++)
|
pascal@22366
|
60 free(rows[i]);
|
pascal@22366
|
61 free(rows);
|
pascal@22366
|
62 --- Imlib/load.c
|
pascal@22366
|
63 +++ Imlib/load.c
|
pascal@22366
|
64 @@ -420,6 +420,15 @@
|
pascal@22366
|
65 #endif /* HAVE_LIBTIFF */
|
pascal@22366
|
66
|
pascal@22366
|
67 #ifdef HAVE_LIBGIF
|
pascal@22366
|
68 +static int ErrorCode;
|
pascal@22366
|
69 +static void PrintGifError(void)
|
pascal@22366
|
70 +{
|
pascal@22366
|
71 + char *Err = GifErrorString(ErrorCode);
|
pascal@22366
|
72 + if (Err != NULL)
|
pascal@22366
|
73 + fprintf(stderr, "GIF-LIB error: %s.\n", Err);
|
pascal@22366
|
74 + else fprintf(stderr, "GIF-LIB undefined error %d.\n", ErrorCode);
|
pascal@22366
|
75 +}
|
pascal@22366
|
76 +
|
pascal@22366
|
77 unsigned char *
|
pascal@22366
|
78 _LoadGIF(ImlibData * id, FILE *f, int *w, int *h, int *t)
|
pascal@22366
|
79 {
|
pascal@22366
|
80 @@ -443,7 +452,7 @@
|
pascal@22366
|
81 fd = fileno(f);
|
pascal@22366
|
82 /* Apparently rewind(f) isn't sufficient */
|
pascal@22366
|
83 lseek(fd, (long) 0, 0);
|
pascal@22366
|
84 - gif = DGifOpenFileHandle(fd);
|
pascal@22366
|
85 + gif = DGifOpenFileHandle(fd, &ErrorCode);
|
pascal@22366
|
86
|
pascal@22366
|
87 if (!gif)
|
pascal@22366
|
88 return NULL;
|
pascal@22366
|
89 @@ -470,13 +479,13 @@
|
pascal@22366
|
90 rows = malloc(*h * sizeof(GifRowType *));
|
pascal@22366
|
91 if (!rows)
|
pascal@22366
|
92 {
|
pascal@22366
|
93 - DGifCloseFile(gif);
|
pascal@22366
|
94 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
95 return NULL;
|
pascal@22366
|
96 }
|
pascal@22366
|
97 data = _imlib_malloc_image(*w, *h);
|
pascal@22366
|
98 if (!data)
|
pascal@22366
|
99 {
|
pascal@22366
|
100 - DGifCloseFile(gif);
|
pascal@22366
|
101 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
102 free(rows);
|
pascal@22366
|
103 return NULL;
|
pascal@22366
|
104 }
|
pascal@22366
|
105 @@ -487,7 +496,7 @@
|
pascal@22366
|
106 rows[i] = malloc(*w * sizeof(GifPixelType));
|
pascal@22366
|
107 if (!rows[i])
|
pascal@22366
|
108 {
|
pascal@22366
|
109 - DGifCloseFile(gif);
|
pascal@22366
|
110 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
111 for (i = 0; i < *h; i++)
|
pascal@22366
|
112 if (rows[i])
|
pascal@22366
|
113 free(rows[i]);
|
pascal@22366
|
114 @@ -576,7 +585,7 @@
|
pascal@22366
|
115 }
|
pascal@22366
|
116 }
|
pascal@22366
|
117 }
|
pascal@22366
|
118 - DGifCloseFile(gif);
|
pascal@22366
|
119 + DGifCloseFile(gif, NULL);
|
pascal@22366
|
120 for (i = 0; i < *h; i++)
|
pascal@22366
|
121 free(rows[i]);
|
pascal@22366
|
122 free(rows);
|