diff options
author | David Spencer | 2015-08-28 00:39:29 +0200 |
---|---|---|
committer | Willy Sudiarto Raharjo | 2016-01-17 03:40:16 +0100 |
commit | 015f5aa75bdef4bbc1d2d16d83a6d24adcfc4e0f (patch) | |
tree | 8eff2b2956e6e6aae14eb33c39e8afed366c1a96 /graphics/meh/meh-giflib.patch | |
parent | 5d9bed09d46c0bf8f3321b13f0dc56241ecc3d02 (diff) | |
download | slackbuilds-015f5aa75bdef4bbc1d2d16d83a6d24adcfc4e0f.tar.gz |
graphics/meh: Patched to build with giflib-5.1.
Signed-off-by: David Spencer <baildon.research@googlemail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'graphics/meh/meh-giflib.patch')
-rw-r--r-- | graphics/meh/meh-giflib.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/graphics/meh/meh-giflib.patch b/graphics/meh/meh-giflib.patch new file mode 100644 index 0000000000..b58dfd167d --- /dev/null +++ b/graphics/meh/meh-giflib.patch @@ -0,0 +1,81 @@ +diff -u -r meh-0.3/src/gif.c meh-0.3-git/src/gif.c +--- meh-0.3/src/gif.c 2010-01-04 17:45:01.000000000 +0000 ++++ meh-0.3-git/src/gif.c 2015-08-27 16:11:39.082286073 +0100 +@@ -32,7 +32,11 @@ + /* HACK HACK HACK */ + rewind(f); + lseek(fileno(f), 0L, SEEK_SET); ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ if(!(gif = DGifOpenFileHandle(fileno(f), NULL))){ ++#else + if(!(gif = DGifOpenFileHandle(fileno(f)))){ ++#endif + /* HACK AND HOPE */ + rewind(f); + lseek(fileno(f), 0L, SEEK_SET); +@@ -55,11 +59,10 @@ + struct gif_t *g = (struct gif_t *)img; + GifColorType *colormap; + SavedImage *s; ++ int ret; + +- if(DGifSlurp(g->gif) == GIF_ERROR){ +- PrintGifError(); +- return 1; +- } ++ if((ret = DGifSlurp(g->gif)) != GIF_OK) ++ goto error; + + s = &g->gif->SavedImages[0]; + +@@ -67,10 +70,8 @@ + colormap = s->ImageDesc.ColorMap->Colors; + else if(g->gif->SColorMap) + colormap = g->gif->SColorMap->Colors; +- else{ +- PrintGifError(); +- return 1; +- } ++ else ++ goto error; + + for(i = 0; i < img->bufwidth * img->bufheight; i++){ + unsigned char idx = s->RasterBits[i]; +@@ -82,11 +83,37 @@ + img->state |= LOADED | SLOWLOADED; + + return 0; ++error: ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ fprintf(stderr, "GIFLIB: %s\n", GifErrorString(ret)); ++#elif defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4) ++ fprintf(stderr, "GIFLIB: %s\n", GifErrorString()); ++#else ++ PrintGifError(); ++#endif ++ return 1; + } + + void gif_close(struct image *img){ + struct gif_t *g = (struct gif_t *)img; ++#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1) ++ int ret; ++#endif ++ ++#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1) ++ DGifCloseFile(g->gif,&ret); ++ if(ret != GIF_OK) { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ fprintf(stderr, "GIFLIB: %s\n", GifErrorString(ret)); ++#elif defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4) ++ fprintf(stderr, "GIFLIB: %s\n", GifErrorString()); ++#else ++ PrintGifError(); ++#endif ++ } ++#else + DGifCloseFile(g->gif); ++#endif + fclose(g->f); + } + |