--- gdal-1.11.0/frmts/gif/gifdataset.cpp.orig 2014-04-16 22:04:33.000000000 +0200 +++ gdal-1.11.0/frmts/gif/gifdataset.cpp 2014-06-14 16:10:22.245009208 +0200 @@ -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_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1))) + DGifCloseFile( hGifFile, NULL ); +#else DGifCloseFile( hGifFile ); +#endif VSIFCloseL( fp ); return NULL; } } +#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1))) + EGifCloseFile(hGifFile, NULL); +#else EGifCloseFile(hGifFile); +#endif if (fp) VSIFCloseL( fp ); if (pabyScanline) --- gdal-1.11.0/frmts/gif/biggifdataset.cpp.orig 2014-04-16 22:04:33.000000000 +0200 +++ gdal-1.11.0/frmts/gif/biggifdataset.cpp 2014-06-14 17:36:54.164900991 +0200 @@ -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_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (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_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1))) + DGifCloseFile( hGifFile, NULL ); +#else DGifCloseFile( hGifFile ); +#endif hGifFile = NULL; CPLError( CE_Failure, CPLE_OpenFailed, --- gdal-1.11.0/frmts/gif/gifabstractdataset.cpp.orig 2014-04-16 22:04:33.000000000 +0200 +++ gdal-1.11.0/frmts/gif/gifabstractdataset.cpp 2014-06-14 18:52:07.828140246 +0200 @@ -82,7 +82,11 @@ } if( hGifFile ) +#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1))) + DGifCloseFile( hGifFile, NULL ); +#else DGifCloseFile( hGifFile ); +#endif if( fp != NULL ) VSIFCloseL( fp );