annotate src/gdal-1-fixes.patch @ 2653:1edd739f0541

package gdal: giflib 5 compatibility
author Mark Brand <mabrand@mabrand.nl>
date Wed, 04 Jul 2012 10:50:01 +0200
parents 15cd103f9446
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2547
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
1 This file is part of MXE.
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
2 See index.html for further information.
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
3
2653
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
4 From a0c0640eb7e98db4a9cbe5104abef8425d975712 Mon Sep 17 00:00:00 2001
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
5 From: Mark Brand <mabrand@mabrand.nl>
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
6 Date: Wed, 4 Jul 2012 10:05:33 +0200
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
7 Subject: [PATCH 1/2] giflib compatibility
2547
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
8
2653
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
9 Taken from http://trac.osgeo.org/gdal/changeset/24491?format=diff&new=24491
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
10 ---
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
11 frmts/gif/gifdataset.cpp | 30 ++++++++++++++++++++++++------
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
12 1 file changed, 24 insertions(+), 6 deletions(-)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
13
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
14 diff --git a/frmts/gif/gifdataset.cpp b/frmts/gif/gifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
15 index c89f34c..1947edd 100644
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
16 --- a/frmts/gif/gifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
17 +++ b/frmts/gif/gifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
18 @@ -470,6 +470,28 @@ GDALDataset *GIFDataset::Open( GDALOpenInfo * poOpenInfo )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
19 }
2547
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
20
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
21 /************************************************************************/
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
22 +/* GDALPrintGifError() */
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
23 +/************************************************************************/
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
24 +
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
25 +static void GDALPrintGifError(const char* pszMsg)
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
26 +{
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
27 +/* GIFLIB_MAJOR is only defined in libgif >= 4.2.0 */
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
28 +/* libgif 4.2.0 has retired PrintGifError() and added GifErrorString() */
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
29 +#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && \
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
30 + ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
31 + /* Static string actually, hence the const char* cast */
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
32 + const char* pszGIFLIBError = (const char*) GifErrorString();
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
33 + if (pszGIFLIBError == NULL)
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
34 + pszGIFLIBError = "Unknown error";
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
35 + CPLError( CE_Failure, CPLE_AppDefined,
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
36 + "%s. GIFLib Error : %s", pszMsg, pszGIFLIBError );
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
37 +#else
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
38 + PrintGifError();
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
39 + CPLError( CE_Failure, CPLE_AppDefined, "%s", pszMsg );
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
40 +#endif
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
41 +}
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
42 +
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
43 +/************************************************************************/
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
44 /* CreateCopy() */
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
45 /************************************************************************/
2653
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
46
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
47 @@ -596,9 +618,7 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
48 psGifCT->ColorCount, 255, psGifCT) == GIF_ERROR)
2547
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
49 {
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
50 FreeMapObject(psGifCT);
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
51 - PrintGifError();
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
52 - CPLError( CE_Failure, CPLE_AppDefined,
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
53 - "Error writing gif file." );
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
54 + GDALPrintGifError("Error writing gif file.");
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
55 EGifCloseFile(hGifFile);
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
56 VSIFCloseL( fp );
2653
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
57 return NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
58 @@ -622,9 +642,7 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
59
2547
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
60 if (EGifPutImageDesc(hGifFile, 0, 0, nXSize, nYSize, bInterlace, NULL) == GIF_ERROR )
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
61 {
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
62 - PrintGifError();
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
63 - CPLError( CE_Failure, CPLE_AppDefined,
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
64 - "Error writing gif file." );
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
65 + GDALPrintGifError("Error writing gif file.");
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
66 EGifCloseFile(hGifFile);
15cd103f9446 package gdal: add missing upstream patch
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
67 VSIFCloseL( fp );
2653
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
68 return NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
69 --
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
70 1.7.10.4
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
71
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
72
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
73 From 7411f59dd769a72a79838e932d1a0988b04dc4d5 Mon Sep 17 00:00:00 2001
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
74 From: Mark Brand <mabrand@mabrand.nl>
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
75 Date: Wed, 4 Jul 2012 10:42:33 +0200
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
76 Subject: [PATCH 2/2] giflib 5 compatibility
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
77
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
78 taken from
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
79 http://trac.osgeo.org/gdal/changeset/24627
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
80 ---
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
81 frmts/gif/biggifdataset.cpp | 5 +++++
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
82 frmts/gif/gifdataset.cpp | 43 ++++++++++++++++++++++++++++++++++++-------
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
83 2 files changed, 41 insertions(+), 7 deletions(-)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
84
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
85 diff --git a/frmts/gif/biggifdataset.cpp b/frmts/gif/biggifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
86 index e3029e5..6bed0dc 100644
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
87 --- a/frmts/gif/biggifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
88 +++ b/frmts/gif/biggifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
89 @@ -371,7 +371,12 @@ CPLErr BIGGIFDataset::ReOpen()
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
90 VSIFSeekL( fp, 0, SEEK_SET );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
91
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
92 nLastLineRead = -1;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
93 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
94 + int nError;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
95 + hGifFile = DGifOpen( fp, VSIGIFReadFunc, &nError );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
96 +#else
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
97 hGifFile = DGifOpen( fp, VSIGIFReadFunc );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
98 +#endif
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
99 if( hGifFile == NULL )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
100 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
101 CPLError( CE_Failure, CPLE_OpenFailed,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
102 diff --git a/frmts/gif/gifdataset.cpp b/frmts/gif/gifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
103 index 1947edd..0b99158 100644
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
104 --- a/frmts/gif/gifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
105 +++ b/frmts/gif/gifdataset.cpp
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
106 @@ -36,8 +36,17 @@ CPL_CVSID("$Id: gifdataset.cpp 23621 2011-12-20 23:26:56Z rouault $");
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
107 CPL_C_START
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
108 void GDALRegister_GIF(void);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
109
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
110 +#if !(defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
111 +
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
112 // This prototype seems to have been messed up!
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
113 GifFileType * EGifOpen(void* userData, OutputFunc writeFunc);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
114 +
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
115 +// Define alias compatible with giflib >= 5.0.0
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
116 +#define GifMakeMapObject MakeMapObject
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
117 +#define GifFreeMapObject FreeMapObject
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
118 +
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
119 +#endif // defined(GIFLIB_MAJOR) && GIFLIB_MAJOR < 5
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
120 +
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
121 CPL_C_END
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
122
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
123 static const int InterlacedOffset[] = { 0, 4, 2, 1 };
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
124 @@ -322,7 +331,12 @@ GDALDataset *GIFDataset::Open( GDALOpenInfo * poOpenInfo )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
125 if( fp == NULL )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
126 return NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
127
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
128 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
129 + int nError;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
130 + hGifFile = DGifOpen( fp, VSIGIFReadFunc, &nError );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
131 +#else
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
132 hGifFile = DGifOpen( fp, VSIGIFReadFunc );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
133 +#endif
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
134 if( hGifFile == NULL )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
135 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
136 VSIFCloseL( fp );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
137 @@ -380,7 +394,12 @@ GDALDataset *GIFDataset::Open( GDALOpenInfo * poOpenInfo )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
138 DGifCloseFile( hGifFile );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
139
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
140 VSIFSeekL( fp, 0, SEEK_SET);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
141 +
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
142 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
143 + hGifFile = DGifOpen( fp, VSIGIFReadFunc, &nError );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
144 +#else
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
145 hGifFile = DGifOpen( fp, VSIGIFReadFunc );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
146 +#endif
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
147 if( hGifFile == NULL )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
148 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
149 VSIFCloseL( fp );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
150 @@ -473,14 +492,19 @@ GDALDataset *GIFDataset::Open( GDALOpenInfo * poOpenInfo )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
151 /* GDALPrintGifError() */
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
152 /************************************************************************/
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
153
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
154 -static void GDALPrintGifError(const char* pszMsg)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
155 +static void GDALPrintGifError(GifFileType *hGifFile, const char* pszMsg)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
156 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
157 /* GIFLIB_MAJOR is only defined in libgif >= 4.2.0 */
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
158 /* libgif 4.2.0 has retired PrintGifError() and added GifErrorString() */
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
159 #if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && \
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
160 ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
161 /* Static string actually, hence the const char* cast */
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
162 +
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
163 +#if GIFLIB_MAJOR >= 5
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
164 + const char* pszGIFLIBError = (const char*) GifErrorString(hGifFile->Error);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
165 +#else
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
166 const char* pszGIFLIBError = (const char*) GifErrorString();
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
167 +#endif
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
168 if (pszGIFLIBError == NULL)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
169 pszGIFLIBError = "Unknown error";
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
170 CPLError( CE_Failure, CPLE_AppDefined,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
171 @@ -557,7 +581,12 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
172 return NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
173 }
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
174
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
175 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
176 + int nError;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
177 + hGifFile = EGifOpen( fp, VSIGIFWriteFunc, &nError );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
178 +#else
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
179 hGifFile = EGifOpen( fp, VSIGIFWriteFunc );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
180 +#endif
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
181 if( hGifFile == NULL )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
182 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
183 VSIFCloseL( fp );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
184 @@ -577,7 +606,7 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
185
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
186 if( poBand->GetColorTable() == NULL )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
187 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
188 - psGifCT = MakeMapObject( 256, NULL );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
189 + psGifCT = GifMakeMapObject( 256, NULL );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
190 for( iColor = 0; iColor < 256; iColor++ )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
191 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
192 psGifCT->Colors[iColor].Red = (GifByteType) iColor;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
193 @@ -593,7 +622,7 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
194 while( nFullCount < poCT->GetColorEntryCount() )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
195 nFullCount = nFullCount * 2;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
196
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
197 - psGifCT = MakeMapObject( nFullCount, NULL );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
198 + psGifCT = GifMakeMapObject( nFullCount, NULL );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
199 for( iColor = 0; iColor < poCT->GetColorEntryCount(); iColor++ )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
200 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
201 GDALColorEntry sEntry;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
202 @@ -617,14 +646,14 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
203 if (EGifPutScreenDesc(hGifFile, nXSize, nYSize,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
204 psGifCT->ColorCount, 255, psGifCT) == GIF_ERROR)
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
205 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
206 - FreeMapObject(psGifCT);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
207 - GDALPrintGifError("Error writing gif file.");
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
208 + GifFreeMapObject(psGifCT);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
209 + GDALPrintGifError(hGifFile, "Error writing gif file.");
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
210 EGifCloseFile(hGifFile);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
211 VSIFCloseL( fp );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
212 return NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
213 }
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
214
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
215 - FreeMapObject(psGifCT);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
216 + GifFreeMapObject(psGifCT);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
217 psGifCT = NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
218
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
219 /* Support for transparency */
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
220 @@ -642,7 +671,7 @@ GIFDataset::CreateCopy( const char * pszFilename, GDALDataset *poSrcDS,
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
221
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
222 if (EGifPutImageDesc(hGifFile, 0, 0, nXSize, nYSize, bInterlace, NULL) == GIF_ERROR )
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
223 {
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
224 - GDALPrintGifError("Error writing gif file.");
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
225 + GDALPrintGifError(hGifFile, "Error writing gif file.");
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
226 EGifCloseFile(hGifFile);
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
227 VSIFCloseL( fp );
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
228 return NULL;
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
229 --
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
230 1.7.10.4
1edd739f0541 package gdal: giflib 5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 2547
diff changeset
231