diff options
Diffstat (limited to 'media-gfx/fbida/files/fbida-2.09-giflib.patch')
-rw-r--r-- | media-gfx/fbida/files/fbida-2.09-giflib.patch | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/media-gfx/fbida/files/fbida-2.09-giflib.patch b/media-gfx/fbida/files/fbida-2.09-giflib.patch new file mode 100644 index 000000000000..50c005589974 --- /dev/null +++ b/media-gfx/fbida/files/fbida-2.09-giflib.patch @@ -0,0 +1,97 @@ +--- 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); |