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