view src/gdal-1-fixes.patch @ 2547:15cd103f9446

package gdal: add missing upstream patch
author Mark Brand <mabrand@mabrand.nl>
date Thu, 24 May 2012 22:28:25 +0200
parents
children 1edd739f0541
line wrap: on
line source

This file is part of MXE.
See index.html for further information.

Taken from http://trac.osgeo.org/gdal/changeset/24491?format=diff&new=24491

Index: gdal/frmts/gif/gifdataset.cpp
===================================================================
--- gdal/frmts/gif/gifdataset.cpp	(revision 23621)
+++ gdal/frmts/gif/gifdataset.cpp	(revision 24491)
@@ -471,4 +471,26 @@
 
 /************************************************************************/
+/*                        GDALPrintGifError()                           */
+/************************************************************************/
+
+static void GDALPrintGifError(const char* pszMsg)
+{
+/* GIFLIB_MAJOR is only defined in libgif >= 4.2.0 */
+/* libgif 4.2.0 has retired PrintGifError() and added GifErrorString() */
+#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && \
+        ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
+    /* Static string actually, hence the const char* cast */
+    const char* pszGIFLIBError = (const char*) GifErrorString();
+    if (pszGIFLIBError == NULL)
+        pszGIFLIBError = "Unknown error";
+    CPLError( CE_Failure, CPLE_AppDefined,
+              "%s. GIFLib Error : %s", pszMsg, pszGIFLIBError );
+#else
+    PrintGifError();
+    CPLError( CE_Failure, CPLE_AppDefined, "%s", pszMsg );
+#endif
+}
+
+/************************************************************************/
 /*                             CreateCopy()                             */
 /************************************************************************/
@@ -597,7 +619,5 @@
     {
         FreeMapObject(psGifCT);
-        PrintGifError();
-        CPLError( CE_Failure, CPLE_AppDefined, 
-                  "Error writing gif file." );
+        GDALPrintGifError("Error writing gif file.");
         EGifCloseFile(hGifFile);
         VSIFCloseL( fp );
@@ -623,7 +643,5 @@
     if (EGifPutImageDesc(hGifFile, 0, 0, nXSize, nYSize, bInterlace, NULL) == GIF_ERROR )
     {
-        PrintGifError();
-        CPLError( CE_Failure, CPLE_AppDefined, 
-                  "Error writing gif file." );
+        GDALPrintGifError("Error writing gif file.");
         EGifCloseFile(hGifFile);
         VSIFCloseL( fp );