summaryrefslogtreecommitdiff
path: root/app-office/magicpoint/files/magicpoint-1.13a_p20121015-any-giflib.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/magicpoint/files/magicpoint-1.13a_p20121015-any-giflib.patch')
-rw-r--r--app-office/magicpoint/files/magicpoint-1.13a_p20121015-any-giflib.patch140
1 files changed, 140 insertions, 0 deletions
diff --git a/app-office/magicpoint/files/magicpoint-1.13a_p20121015-any-giflib.patch b/app-office/magicpoint/files/magicpoint-1.13a_p20121015-any-giflib.patch
new file mode 100644
index 000000000000..0e7903a8dcf0
--- /dev/null
+++ b/app-office/magicpoint/files/magicpoint-1.13a_p20121015-any-giflib.patch
@@ -0,0 +1,140 @@
+--- kit.orig/image/gif.c 2000-03-07 07:59:56.000000000 +0100
++++ kit/image/gif.c 2016-01-12 17:35:49.792443794 +0100
+@@ -18,6 +18,18 @@
+ #include "image.h"
+ #include <gif_lib.h>
+
++static void stderrGifError(GifFileType *gifp, int e) {
++#if defined(GIFLIB_MAJOR) /* added in 4.2.0 along with GifError{,String}() */
++# if GIFLIB_MAJOR >= 5
++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(gifp ? gifp->Error : e));
++# else
++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString());
++# endif
++#else
++ PrintGifError();
++#endif
++}
++
+ static void
+ tellAboutImage(name, gifp)
+ char *name;
+@@ -49,10 +61,17 @@
+ GifFileType *GifFile;
+ ColorMapObject *ColorMap;
+ GifColorType *ColorMapEntry;
++ int gerr = 0;
+
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
++ GifFile = DGifOpenFileName(fullname, &gerr);
++#else
+ GifFile = DGifOpenFileName(fullname);
+- if (GifFile == NULL)
++#endif
++ if (GifFile == NULL) {
++ stderrGifError(GifFile, gerr);
+ return NULL;
++ }
+
+ if ((ScreenBuffer = (GifRowType *)
+ malloc(GifFile->SHeight * sizeof(GifRowType *))) == NULL) {
+@@ -87,13 +106,13 @@
+ /* Scan the content of the GIF file and load the image(s) in: */
+ do {
+ if (DGifGetRecordType(GifFile, &RecordType) == GIF_ERROR) {
+- PrintGifError();
++ stderrGifError(GifFile, 0);
+ exit(-1);
+ }
+ switch (RecordType) {
+ case IMAGE_DESC_RECORD_TYPE:
+ if (DGifGetImageDesc(GifFile) == GIF_ERROR) {
+- PrintGifError();
++ stderrGifError(GifFile, 0);
+ exit(-1);
+ }
+ Row = GifFile->Image.Top; /* Image Position relative to Screen. */
+@@ -113,7 +132,7 @@
+ j += InterlacedJumps[i]) {
+ if (DGifGetLine(GifFile, &ScreenBuffer[j][Col],
+ Width) == GIF_ERROR) {
+- PrintGifError();
++ stderrGifError(GifFile, 0);
+ exit(-1);
+ }
+ }
+@@ -122,7 +141,7 @@
+ for (i = 0; i < Height; i++) {
+ if (DGifGetLine(GifFile, &ScreenBuffer[Row++][Col],
+ Width) == GIF_ERROR) {
+- PrintGifError();
++ stderrGifError(GifFile, 0);
+ exit(-1);
+ }
+ }
+@@ -131,7 +150,7 @@
+ case EXTENSION_RECORD_TYPE:
+ /* Skip any extension blocks in file: */
+ if (DGifGetExtension(GifFile, &ExtCode, &Extension) == GIF_ERROR) {
+- PrintGifError();
++ stderrGifError(GifFile, 0);
+ exit(-1);
+ }
+ /* very adhoc transparency support */
+@@ -141,7 +160,7 @@
+ }
+ while (Extension != NULL) {
+ if (DGifGetExtensionNext(GifFile, &Extension) == GIF_ERROR) {
+- PrintGifError();
++ stderrGifError(GifFile, 0);
+ exit(-1);
+ }
+ }
+@@ -179,8 +198,21 @@
+ pixline[x] = GifRow[x];
+ }
+
++#if defined(GIFLIB_MAJOR) && (GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1))
++ if (DGifCloseFile(GifFile, &gerr) == GIF_ERROR) {
++ stderrGifError(NULL, gerr);
++#else
+ if (DGifCloseFile(GifFile) == GIF_ERROR) {
+- PrintGifError();
++# if defined(GIFLIB_MAJOR)
++# if GIFLIB_MAJOR >= 5
++ stderrGifError(GifFile, 0);
++# else
++ stderrGifError(NULL, GifError());
++# endif
++# else
++ stderrGifError(NULL, 0);
++# endif
++#endif
+ exit(-1);
+ }
+
+@@ -195,12 +227,22 @@
+ {
+ GifFileType *gifp;
+ int ret;
++ int gerr = 0;
+
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
++ gifp = DGifOpenFileName(fullname, &gerr);
++#else
+ gifp = DGifOpenFileName(fullname);
+- if (gifp == NULL)
++#endif
++ if (gifp == NULL) {
++ stderrGifError(gifp, gerr);
+ ret = 0;
+- else {
++ } else {
++#if defined(GIFLIB_MAJOR) && (GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1))
++ DGifCloseFile(gifp, &gerr);
++#else
+ DGifCloseFile(gifp);
++#endif
+ tellAboutImage(name);
+ ret = 1;
+ }