summaryrefslogtreecommitdiff
path: root/community/gdal/giflib51.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/gdal/giflib51.patch')
-rw-r--r--community/gdal/giflib51.patch139
1 files changed, 139 insertions, 0 deletions
diff --git a/community/gdal/giflib51.patch b/community/gdal/giflib51.patch
new file mode 100644
index 000000000..7c18ed590
--- /dev/null
+++ b/community/gdal/giflib51.patch
@@ -0,0 +1,139 @@
+diff -ruN frmts/gif.orig/biggifdataset.cpp frmts/gif/biggifdataset.cpp
+--- frmts/gif.orig/biggifdataset.cpp 2014-04-16 20:04:33.000000000 +0000
++++ frmts/gif/biggifdataset.cpp 2014-06-11 12:39:28.420405033 +0000
+@@ -339,7 +339,11 @@
+ /* If the file is already open, close it so we can restart. */
+ /* -------------------------------------------------------------------- */
+ if( hGifFile != NULL )
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile( hGifFile, NULL );
++#else
+ DGifCloseFile( hGifFile );
++#endif
+
+ /* -------------------------------------------------------------------- */
+ /* If we are actually reopening, then we assume that access to */
+@@ -413,7 +417,11 @@
+
+ if( RecordType != IMAGE_DESC_RECORD_TYPE )
+ {
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile( hGifFile, NULL );
++#else
+ DGifCloseFile( hGifFile );
++#endif
+ hGifFile = NULL;
+
+ CPLError( CE_Failure, CPLE_OpenFailed,
+@@ -423,7 +431,11 @@
+
+ if (DGifGetImageDesc(hGifFile) == GIF_ERROR)
+ {
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile( hGifFile, NULL );
++#else
+ DGifCloseFile( hGifFile );
++#endif
+ hGifFile = NULL;
+
+ CPLError( CE_Failure, CPLE_OpenFailed,
+diff -ruN frmts/gif.orig/gifabstractdataset.cpp frmts/gif/gifabstractdataset.cpp
+--- frmts/gif.orig/gifabstractdataset.cpp 2014-04-16 20:04:33.000000000 +0000
++++ frmts/gif/gifabstractdataset.cpp 2014-06-11 12:54:25.609072106 +0000
+@@ -82,7 +82,11 @@
+ }
+
+ if( hGifFile )
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile( hGifFile, NULL );
++#else
+ DGifCloseFile( hGifFile );
++#endif
+
+ if( fp != NULL )
+ VSIFCloseL( fp );
+diff -ruN frmts/gif.orig/gifdataset.cpp frmts/gif/gifdataset.cpp
+--- frmts/gif.orig/gifdataset.cpp 2014-04-16 20:04:33.000000000 +0000
++++ frmts/gif/gifdataset.cpp 2014-06-11 12:45:37.318469917 +0000
+@@ -386,13 +386,21 @@
+ CPLDebug( "GIF",
+ "Due to limitations of the GDAL GIF driver we deliberately avoid\n"
+ "opening large GIF files (larger than 100 megapixels).");
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile( hGifFile, NULL );
++#else
+ DGifCloseFile( hGifFile );
++#endif
+ VSIFCloseL( fp );
+ return NULL;
+ }
+ }
+
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile( hGifFile, NULL );
++#else
+ DGifCloseFile( hGifFile );
++#endif
+
+ VSIFSeekL( fp, 0, SEEK_SET);
+
+@@ -417,7 +425,11 @@
+ if( nGifErr != GIF_OK || hGifFile->SavedImages == NULL )
+ {
+ VSIFCloseL( fp );
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ DGifCloseFile(hGifFile, NULL);
++#else
+ DGifCloseFile(hGifFile);
++#endif
+
+ if( nGifErr == D_GIF_ERR_DATA_TOO_BIG )
+ {
+@@ -649,7 +661,11 @@
+ {
+ GifFreeMapObject(psGifCT);
+ GDALPrintGifError(hGifFile, "Error writing gif file.");
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ EGifCloseFile(hGifFile, NULL);
++#else
+ EGifCloseFile(hGifFile);
++#endif
+ VSIFCloseL( fp );
+ return NULL;
+ }
+@@ -673,7 +689,11 @@
+ if (EGifPutImageDesc(hGifFile, 0, 0, nXSize, nYSize, bInterlace, NULL) == GIF_ERROR )
+ {
+ GDALPrintGifError(hGifFile, "Error writing gif file.");
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ EGifCloseFile(hGifFile, NULL);
++#else
+ EGifCloseFile(hGifFile);
++#endif
+ VSIFCloseL( fp );
+ return NULL;
+ }
+@@ -756,7 +776,11 @@
+ /* -------------------------------------------------------------------- */
+ /* cleanup */
+ /* -------------------------------------------------------------------- */
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ if (EGifCloseFile(hGifFile, NULL) == GIF_ERROR)
++#else
+ if (EGifCloseFile(hGifFile) == GIF_ERROR)
++#endif
+ {
+ CPLError( CE_Failure, CPLE_AppDefined,
+ "EGifCloseFile() failed.\n" );
+@@ -807,7 +831,11 @@
+
+ error:
+ if (hGifFile)
++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
++ EGifCloseFile(hGifFile, NULL);
++#else
+ EGifCloseFile(hGifFile);
++#endif
+ if (fp)
+ VSIFCloseL( fp );
+ if (pabyScanline)