--- imlib-1.9.15-r4.orig/work/imlib-1.9.15/Imlib/load.c 2016-02-11 12:23:08.719324853 +0100 +++ imlib-1.9.15-r4/work/imlib-1.9.15/Imlib/load.c 2016-02-11 12:48:05.705984502 +0100 @@ -465,6 +465,9 @@ _LoadGIF(ImlibData * id, FILE *f, int *w int intjump[] = {8, 8, 4, 2}; int istransp, transp; int fd; +#if GIFLIB_MAJOR >= 5 + int err; +#endif done = 0; istransp = 0; @@ -475,7 +478,11 @@ _LoadGIF(ImlibData * id, FILE *f, int *w fd = fileno(f); /* Apparently rewind(f) isn't sufficient */ lseek(fd, (long) 0, 0); +#if GIFLIB_MAJOR >= 5 + gif = DGifOpenFileHandle(fd, &err); +#else gif = DGifOpenFileHandle(fd); +#endif if (!gif) return NULL; @@ -502,13 +509,21 @@ _LoadGIF(ImlibData * id, FILE *f, int *w rows = malloc(*h * sizeof(GifRowType *)); if (!rows) { +#if GIFLIB_MAJOR >= 5 + DGifCloseFile(gif, &err); +#else DGifCloseFile(gif); +#endif return NULL; } data = _imlib_malloc_image(*w, *h); if (!data) { +#if GIFLIB_MAJOR >= 5 + DGifCloseFile(gif, &err); +#else DGifCloseFile(gif); +#endif free(rows); return NULL; } @@ -519,7 +534,11 @@ _LoadGIF(ImlibData * id, FILE *f, int *w rows[i] = malloc(*w * sizeof(GifPixelType)); if (!rows[i]) { +#if GIFLIB_MAJOR >= 5 + DGifCloseFile(gif, &err); +#else DGifCloseFile(gif); +#endif for (i = 0; i < *h; i++) if (rows[i]) free(rows[i]); @@ -608,7 +627,11 @@ _LoadGIF(ImlibData * id, FILE *f, int *w } } } +#if GIFLIB_MAJOR >= 5 + DGifCloseFile(gif, &err); +#else DGifCloseFile(gif); +#endif for (i = 0; i < *h; i++) free(rows[i]); free(rows);