jer         14/11/27 01:53:32

  Added:                fbida-2.09-giflib.patch
  Log:
  Use a single patch for every giflib version.
  
  (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 
A792A613)

Revision  Changes    Path
1.1                  media-gfx/fbida/files/fbida-2.09-giflib.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-gfx/fbida/files/fbida-2.09-giflib.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-gfx/fbida/files/fbida-2.09-giflib.patch?rev=1.1&content-type=text/plain

Index: fbida-2.09-giflib.patch
===================================================================
--- a/rd/read-gif.c
+++ b/rd/read-gif.c
@@ -25,7 +25,13 @@
        if (GIF_ERROR == DGifGetRecordType(h->gif,&RecordType)) {
            if (debug)
                fprintf(stderr,"gif: DGifGetRecordType failed\n");
-           PrintGifError();
+#if GIFLIB_MAJOR >= 5
+               GifErrorString(D_GIF_ERR_NOT_GIF_FILE);
+#elif (GIFLIB_MAJOR >= 4 && GIFLIB_MINOR >=2)
+           GifErrorString();
+#else
+               PrintGifError();
+#endif
            return -1;
        }
        switch (RecordType) {
@@ -42,7 +48,13 @@
                if (rc == GIF_ERROR) {
                    if (debug)
                        fprintf(stderr,"gif: DGifGetExtension failed\n");
+#if GIFLIB_MAJOR >= 5
+                   GifErrorString(D_GIF_ERR_NOT_GIF_FILE);
+#elif (GIFLIB_MAJOR >= 4 && GIFLIB_MINOR >=2)
+                   GifErrorString();
+#else
                    PrintGifError();
+#endif
                    return -1;
                }
                if (debug) {
@@ -93,12 +105,19 @@
     struct gif_state *h;
     GifRecordType RecordType;
     int i, image = 0;
+#if (GIFLIB_MAJOR >=5 && GIFLIB_MINOR >= 1)
+    int ErrorCode;
+#endif
     
     h = malloc(sizeof(*h));
     memset(h,0,sizeof(*h));
 
     h->infile = fp;
+#if GIFLIB_MAJOR >= 5
+    h->gif = DGifOpenFileHandle(fileno(fp), NULL);
+#else
     h->gif = DGifOpenFileHandle(fileno(fp));
+#endif
     h->row = malloc(h->gif->SWidth * sizeof(GifPixelType));
 
     while (0 == image) {
@@ -108,7 +127,15 @@
            if (GIF_ERROR == DGifGetImageDesc(h->gif)) {
                if (debug)
                    fprintf(stderr,"gif: DGifGetImageDesc failed\n");
+#if (GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1)
+               GifErrorString(D_GIF_ERR_NO_IMAG_DSCR);
+#elif GIFLIB_MAJOR >= 5
+               GifErrorString(NULL);
+#elif (GIFLIB_MAJOR >= 4 && GIFLIB_MINOR >=2)
+               GifErrorString();
+#else
                PrintGifError();
+#endif
            }
            if (NULL == h->gif->SColorMap &&
                NULL == h->gif->Image.ColorMap) {
@@ -156,7 +183,11 @@
  oops:
     if (debug)
        fprintf(stderr,"gif: fatal error, aborting\n");
+#if (GIFLIB_MAJOR >=5 && GIFLIB_MINOR >= 1)
+    DGifCloseFile(h->gif, &ErrorCode);
+#else
     DGifCloseFile(h->gif);
+#endif
     fclose(h->infile);
     free(h->row);
     free(h);
@@ -193,10 +224,17 @@
 gif_done(void *data)
 {
     struct gif_state *h = data;
+#if (GIFLIB_MAJOR >=5 && GIFLIB_MINOR >= 1)
+    int ErrorCode;
+#endif
 
     if (debug)
        fprintf(stderr,"gif: done, cleaning up\n");
+#if (GIFLIB_MAJOR >=5 && GIFLIB_MINOR >= 1)
+    DGifCloseFile(h->gif, &ErrorCode);
+#else
     DGifCloseFile(h->gif);
+#endif
     fclose(h->infile);
     if (h->il)
        free(h->il);




Reply via email to