diff options
author | David Spencer <baildon.research@googlemail.com> | 2015-08-04 15:26:47 +0100 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2016-01-17 09:40:16 +0700 |
commit | b6cdff1cab3dcf383d43a21c2ddd168657fabdc5 (patch) | |
tree | a9102006447d61c683ddd432ccba1f143a48a681 /graphics/exact-image/exact-image-giflib.patch | |
parent | 6052a66182ea460d46aaeef2e3af3c28931ffa0b (diff) |
graphics/exact-image: Updated for version 0.9.1.
Patched to fix build failure with giflib-5.1 & libpng16 (-current).
Signed-off-by: David Spencer <baildon.research@googlemail.com>
Diffstat (limited to 'graphics/exact-image/exact-image-giflib.patch')
-rw-r--r-- | graphics/exact-image/exact-image-giflib.patch | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/graphics/exact-image/exact-image-giflib.patch b/graphics/exact-image/exact-image-giflib.patch new file mode 100644 index 0000000000000..f15c7ad717683 --- /dev/null +++ b/graphics/exact-image/exact-image-giflib.patch @@ -0,0 +1,139 @@ +--- exact-image-0.8.9/codecs/gif.cc.orig 2010-03-03 22:04:44.000000000 +0100 ++++ exact-image-0.8.9/codecs/gif.cc 2014-10-20 16:45:48.021255431 +0200 +@@ -17,6 +17,12 @@ + + #include <gif_lib.h> + ++#if (GIFLIB_MAJOR > 5) || (GIFLIB_MINOR >= 1) ++#define Internal_EGifCloseFile(f) EGifCloseFile(f, NULL) ++#else ++#define Internal_EGifCloseFile(f) EGifCloseFile(f) ++#endif ++ + #include "gif.hh" + #include "Colorspace.hh" + +@@ -58,11 +64,11 @@ + GifRecordType RecordType; + GifByteType* Extension; + ColorMapObject *ColorMap = NULL; +- int ExtCode; ++ int ExtCode, GifError; + +- if ((GifFile = DGifOpen (stream, &GIFInputFunc)) == NULL) ++ if ((GifFile = DGifOpen (stream, &GIFInputFunc, &GifError)) == NULL) + { +- PrintGifError(); ++ std::cerr << "Error: " << GifErrorString(GifError) << std::endl; + return false; + } + +@@ -74,7 +80,7 @@ + /* Scan the content of the GIF file and load the image(s) in: */ + do { + if (DGifGetRecordType(GifFile, &RecordType) == GIF_ERROR) { +- PrintGifError(); ++ std::cerr << "DGifGetRecordType error: " << GifErrorString(GifFile->Error) << std::endl; + return false; + } + +@@ -83,7 +89,7 @@ + switch (RecordType) { + case IMAGE_DESC_RECORD_TYPE: + if (DGifGetImageDesc(GifFile) == GIF_ERROR) { +- PrintGifError(); ++ std::cerr << "DGifGetImageDesc error: " << GifErrorString(GifFile->Error) << std::endl; + return false; + } + +@@ -104,7 +110,7 @@ + j += InterlacedJumps[i]) { + if (DGifGetLine(GifFile, &image.getRawData()[j*image.stride()+Col], + Width) == GIF_ERROR) { +- PrintGifError(); ++ std::cerr << "DGifGetLine error: " << GifErrorString(GifFile->Error) << std::endl; + return false; + } + } +@@ -113,7 +119,7 @@ + for (int i = 0; i < Height; ++i) { + if (DGifGetLine(GifFile, &image.getRawData()[Row++ * image.stride()+Col], + Width) == GIF_ERROR) { +- PrintGifError(); ++ std::cerr << "DGifGetLine error: " << GifErrorString(GifFile->Error) << std::endl; + return false; + } + } +@@ -122,12 +128,12 @@ + case EXTENSION_RECORD_TYPE: + /* Skip any extension blocks in file: */ + if (DGifGetExtension(GifFile, &ExtCode, &Extension) == GIF_ERROR) { +- PrintGifError(); ++ std::cerr << "DGifGetExtension error: " << GifErrorString(GifFile->Error) << std::endl; + return false; + } + while (Extension != NULL) { + if (DGifGetExtensionNext(GifFile, &Extension) == GIF_ERROR) { +- PrintGifError(); ++ std::cerr << "DGifGetExtensionNext error: " << GifErrorString(GifFile->Error) << std::endl; + return false; + } + } +@@ -155,7 +161,7 @@ + // convert colormap to our 16bit "TIFF"format + colorspace_de_palette (image, ColorMap->ColorCount, rmap, gmap, bmap); + +- EGifCloseFile(GifFile); ++ Internal_EGifCloseFile(GifFile); + + return true; + } +@@ -165,17 +171,18 @@ + { + GifFileType* GifFile; + GifByteType* Ptr; ++ int GifError; + +- if ((GifFile = EGifOpen (stream, &GIFOutputFunc)) == NULL) ++ if ((GifFile = EGifOpen (stream, &GIFOutputFunc, &GifError)) == NULL) + { +- std::cerr << "Error preparing GIF file for writing." << std::endl; ++ std::cerr << "Error preparing GIF file for writing: " << GifErrorString(GifError) << std::endl; + return false; + } + + int ColorMapSize = 256; + + // later use our own colormap generation +- ColorMapObject* OutputColorMap = MakeMapObject(ColorMapSize, NULL); ++ ColorMapObject* OutputColorMap = GifMakeMapObject(ColorMapSize, NULL); + if (!OutputColorMap) + return false; + +@@ -203,7 +210,7 @@ + } + + +- if (QuantizeBuffer(image.w, image.h, &ColorMapSize, ++ if (GifQuantizeBuffer(image.w, image.h, &ColorMapSize, + RedBuffer, GreenBuffer, BlueBuffer, + OutputBuffer, OutputColorMap->Colors) == GIF_ERROR) { + return false; +@@ -215,7 +222,7 @@ + if (EGifPutScreenDesc(GifFile, image.w, image.h, + ColorMapSize, 0, OutputColorMap) == GIF_ERROR || + EGifPutImageDesc(GifFile, 0, 0, image.w, image.h, +- FALSE, NULL) == GIF_ERROR) ++ false, NULL) == GIF_ERROR) + { + std::cerr << "Error writing GIF header." << std::endl; + return false; +@@ -234,7 +241,7 @@ + + delete (RedBuffer); delete (GreenBuffer); delete (BlueBuffer); + +- EGifCloseFile(GifFile); ++ Internal_EGifCloseFile(GifFile); + return true; + } + |