Mercurial > mxe-octave
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 );