wok-next rev 20241
xplanet: use patches
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Mon Nov 06 22:53:21 2017 +0200 (2017-11-06) |
parents | 43bb045c66b6 |
children | 28ea851f8c06 |
files | xplanet/receipt xplanet/stuff/patches/fix_warnings.diff xplanet/stuff/patches/gcc-6.patch xplanet/stuff/patches/giflib5.diff xplanet/stuff/patches/series |
line diff
1.1 --- a/xplanet/receipt Mon Nov 06 18:33:20 2017 +0100 1.2 +++ b/xplanet/receipt Mon Nov 06 22:53:21 2017 +0200 1.3 @@ -1,38 +1,31 @@ 1.4 -# SliTaz package receipt. 1.5 +# SliTaz package receipt v2. 1.6 1.7 PACKAGE="xplanet" 1.8 -VERSION="1.2.2" 1.9 -CATEGORY="system-tools" 1.10 -SHORT_DESC="Render major planets into the X root window." 1.11 +VERSION="1.3.0" 1.12 +CATEGORY="graphics" 1.13 +SHORT_DESC="Render major planets into the X root window" 1.14 MAINTAINER="pascal.bellard@slitaz.org" 1.15 LICENSE="GPL2" 1.16 +WEB_SITE="http://xplanet.sourceforge.net/" 1.17 + 1.18 TARBALL="$PACKAGE-$VERSION.tar.gz" 1.19 -WEB_SITE="http://xplanet.sourceforge.net/" 1.20 WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL" 1.21 1.22 -DEPENDS="perl jpeg libpng zlib tiff xorg-libX11 freetype pango fontconfig \ 1.23 +BUILD_DEPENDS="patch xorg-libX11-dev xorg-libICE-dev xorg-libXext-dev \ 1.24 +xorg-libXScrnSaver-dev freetype-dev pango-dev giflib-dev libjpeg-turbo-dev \ 1.25 +libpng16-dev tiff-dev" 1.26 + 1.27 +compile_rules() { 1.28 + ./configure \ 1.29 + --with-freetype \ 1.30 + $CONFIGURE_ARGS && 1.31 + make -j1 && 1.32 + make install 1.33 +} 1.34 + 1.35 +genpkg_rules() { 1.36 + copy @std 1.37 + DEPENDS="perl jpeg libpng zlib tiff xorg-libX11 freetype pango fontconfig \ 1.38 glib xorg-libXau xorg-libXdmcp expat giflib xorg-libXScrnSaver gcc-lib-base \ 1.39 util-linux-uuid" 1.40 -BUILD_DEPENDS="giflib-dev jpeg-dev libpng-dev zlib-dev tiff-dev \ 1.41 -xorg-libX11-dev freetype-dev pango-dev fontconfig-dev glib-dev \ 1.42 -xorg-libXau-dev xorg-libXdmcp-dev" 1.43 - 1.44 -# Rules to configure and make the package. 1.45 -compile_rules() 1.46 -{ 1.47 - # Fix for gcc 4.4 1.48 - for file in src/Satellite.cpp src/Separation.cpp ; do 1.49 - grep -q cstdio $file || sed -i '2i\#include <cstdio>' $file 1.50 - done 1.51 - ./configure --prefix=/usr --mandir=/usr/share/man $CONFIGURE_ARGS && 1.52 - make && 1.53 - make -j1 DESTDIR=$DESTDIR install 1.54 } 1.55 - 1.56 -# Rules to gen a SliTaz package suitable for Tazpkg. 1.57 -genpkg_rules() 1.58 -{ 1.59 - mkdir -p $fs/usr/share 1.60 - cp -a $install/usr/share/xplanet $fs/usr/share 1.61 - cp -a $install/usr/bin $fs/usr 1.62 -} 1.63 \ No newline at end of file
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/xplanet/stuff/patches/fix_warnings.diff Mon Nov 06 22:53:21 2017 +0200 2.3 @@ -0,0 +1,165 @@ 2.4 +diff --git a/src/libdisplay/DisplayBase.cpp b/src/libdisplay/DisplayBase.cpp 2.5 +index 7287232..1fd086f 100644 2.6 +--- a/src/libdisplay/DisplayBase.cpp 2.7 ++++ b/src/libdisplay/DisplayBase.cpp 2.8 +@@ -224,7 +224,7 @@ DisplayBase::drawLabel(PlanetProperties *planetProperties[]) 2.9 + tzSave = "TZ="; 2.10 + tzSave += tzEnv; 2.11 + } 2.12 +- putenv("TZ=UTC"); 2.13 ++ putenv((char *)"TZ=UTC"); 2.14 + tzset(); 2.15 + } 2.16 + 2.17 +diff --git a/src/libdisplay/DisplayX11.cpp b/src/libdisplay/DisplayX11.cpp 2.18 +index ad5a47d..f5cbff1 100644 2.19 +--- a/src/libdisplay/DisplayX11.cpp 2.20 ++++ b/src/libdisplay/DisplayX11.cpp 2.21 +@@ -97,8 +97,8 @@ DisplayX11::DisplayX11(const int tr) : DisplayBase(tr) 2.22 + // contributed by Dragan Stanojevic - Nevidljivi <invisible@hidden-city.net> 2.23 + XClassHint classHint; 2.24 + 2.25 +- classHint.res_name = "xplanet"; 2.26 +- classHint.res_class = "XPlanet"; 2.27 ++ classHint.res_name = (char *)"xplanet"; 2.28 ++ classHint.res_class = (char *)"XPlanet"; 2.29 + 2.30 + XSetClassHint(display, window, &classHint); 2.31 + } 2.32 +diff --git a/src/libimage/ReadImage.cpp b/src/libimage/ReadImage.cpp 2.33 +index 0d07575..8a47dd2 100644 2.34 +--- a/src/libimage/ReadImage.cpp 2.35 ++++ b/src/libimage/ReadImage.cpp 2.36 +@@ -45,6 +45,7 @@ ReadImage(const char *filename, int &width, int &height, 2.37 + { 2.38 + char buf[4]; 2.39 + unsigned char *ubuf = (unsigned char *) buf; 2.40 ++ size_t ret = 0; 2.41 + int success = 0; 2.42 + 2.43 + FILE *file; 2.44 +@@ -53,8 +54,10 @@ ReadImage(const char *filename, int &width, int &height, 2.45 + 2.46 + /* see what kind of file we have */ 2.47 + 2.48 +- fread(buf, 1, 4, file); 2.49 ++ ret = fread(buf, 1, 4, file); 2.50 + fclose(file); 2.51 ++ if (ret != 4) 2.52 ++ return 0; 2.53 + 2.54 + if (!strncmp("BM", buf, 2)) 2.55 + { 2.56 +diff --git a/src/libimage/png.c b/src/libimage/png.c 2.57 +index 51bac8d..d5d6645 100644 2.58 +--- a/src/libimage/png.c 2.59 ++++ b/src/libimage/png.c 2.60 +@@ -20,6 +20,7 @@ 2.61 + 2.62 + #include <stdio.h> 2.63 + #include <stdlib.h> 2.64 ++#include <string.h> 2.65 + 2.66 + #include <png.h> 2.67 + 2.68 +diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp 2.69 +index d885173..1b3f406 100644 2.70 +--- a/src/libmultiple/RayleighScattering.cpp 2.71 ++++ b/src/libmultiple/RayleighScattering.cpp 2.72 +@@ -618,19 +618,28 @@ RayleighScattering::readBinaryTable(const char *filename) 2.73 + 2.74 + if (inFile != NULL) 2.75 + { 2.76 +- size_t dim0, dim1, dim2; 2.77 +- fread(&dim0, sizeof(size_t), 1, inFile); 2.78 +- fread(&dim1, sizeof(size_t), 1, inFile); 2.79 +- fread(&dim2, sizeof(size_t), 1, inFile); 2.80 +- 2.81 +- size_t size = dim0*dim1*dim2; 2.82 ++ size_t dim0, dim1, dim2, ret; 2.83 ++ ret = fread(&dim0, sizeof(size_t), 1, inFile); 2.84 ++ if (ret == sizeof(size_t)) 2.85 ++ ret = fread(&dim1, sizeof(size_t), 1, inFile); 2.86 ++ if (ret == sizeof(size_t)) 2.87 ++ ret = fread(&dim2, sizeof(size_t), 1, inFile); 2.88 ++ 2.89 ++ if (ret == sizeof(size_t)) 2.90 ++ { 2.91 ++ size_t size = dim0*dim1*dim2; 2.92 + 2.93 +- dblArray = new double[size]; 2.94 +- fread(dblArray, sizeof(double), size, inFile); 2.95 ++ dblArray = new double[size]; 2.96 ++ ret = fread(dblArray, sizeof(double), size, inFile); 2.97 ++ if (ret != size) 2.98 ++ { 2.99 ++ delete dblArray; 2.100 ++ dblArray = NULL; 2.101 ++ } 2.102 ++ } 2.103 ++ fclose(inFile); 2.104 + } 2.105 + 2.106 +- fclose(inFile); 2.107 +- 2.108 + return dblArray; 2.109 + } 2.110 + 2.111 +diff --git a/src/readConfig.cpp b/src/readConfig.cpp 2.112 +index cc1964f..3186534 100644 2.113 +--- a/src/readConfig.cpp 2.114 ++++ b/src/readConfig.cpp 2.115 +@@ -49,7 +49,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[]) 2.116 + int r, g, b; 2.117 + if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) 2.118 + { 2.119 +- unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; 2.120 ++ unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) }; 2.121 + currentProperties->ArcColor(color); 2.122 + } 2.123 + else 2.124 +@@ -179,7 +179,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[]) 2.125 + int r, g, b; 2.126 + if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) 2.127 + { 2.128 +- unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; 2.129 ++ unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) }; 2.130 + currentProperties->Color(color); 2.131 + } 2.132 + else 2.133 +@@ -244,7 +244,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[]) 2.134 + int r, g, b; 2.135 + if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) 2.136 + { 2.137 +- unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; 2.138 ++ unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) }; 2.139 + currentProperties->GridColor(color); 2.140 + } 2.141 + else 2.142 +@@ -296,7 +296,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[]) 2.143 + int r, g, b; 2.144 + if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) 2.145 + { 2.146 +- unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; 2.147 ++ unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) }; 2.148 + currentProperties->MarkerColor(color); 2.149 + } 2.150 + else 2.151 +@@ -403,7 +403,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[]) 2.152 + int r, g, b; 2.153 + if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) 2.154 + { 2.155 +- unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; 2.156 ++ unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) }; 2.157 + currentProperties->OrbitColor(color); 2.158 + } 2.159 + else 2.160 +@@ -473,7 +473,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[]) 2.161 + int r, g, b; 2.162 + if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) 2.163 + { 2.164 +- unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; 2.165 ++ unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) }; 2.166 + currentProperties->TextColor(color); 2.167 + } 2.168 + else
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/xplanet/stuff/patches/gcc-6.patch Mon Nov 06 22:53:21 2017 +0200 3.3 @@ -0,0 +1,214 @@ 3.4 +Description: Fix compilation with gcc/g++ 6 3.5 + Multiple inFile.getline() calls within xplanet test the return 3.6 + against NULL in a read loop, but g++ 6 doesn't like this. Replace 3.7 + with checks for inFile.eof() and inFile.fail() instead. 3.8 +Author: Steve McIntyre <93sam@debian.org> 3.9 +Bug-Debian: https://bugs.debian.org/811820 3.10 +Forwarded: Hari Nair <hari@alumni.caltech.edu> 3.11 +Last-Update: 2016-07-18 3.12 + 3.13 +--- xplanet-1.3.0.orig/src/libannotate/addArcs.cpp 3.14 ++++ xplanet-1.3.0/src/libannotate/addArcs.cpp 3.15 +@@ -258,10 +258,14 @@ addArcs(PlanetProperties *planetProperti 3.16 + { 3.17 + ifstream inFile(arcFile.c_str()); 3.18 + char *line = new char[MAX_LINE_LENGTH]; 3.19 +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) 3.20 +- readArcFile(line, planet, view, projection, 3.21 +- planetProperties, annotationMap); 3.22 +- 3.23 ++ while (1) 3.24 ++ { 3.25 ++ inFile.getline (line, MAX_LINE_LENGTH, '\n'); 3.26 ++ if (inFile.eof() || inFile.fail()) 3.27 ++ break; 3.28 ++ readArcFile(line, planet, view, projection, 3.29 ++ planetProperties, annotationMap); 3.30 ++ } 3.31 + inFile.close(); 3.32 + delete [] line; 3.33 + } 3.34 +@@ -292,9 +296,13 @@ addArcs(View *view, multimap<double, Ann 3.35 + { 3.36 + ifstream inFile(arcFile.c_str()); 3.37 + char *line = new char[256]; 3.38 +- while (inFile.getline (line, 256, '\n') != NULL) 3.39 +- readArcFile(line, NULL, view, NULL, NULL, annotationMap); 3.40 +- 3.41 ++ while (1) 3.42 ++ { 3.43 ++ inFile.getline (line, 256, '\n'); 3.44 ++ if (inFile.eof() || inFile.fail()) 3.45 ++ break; 3.46 ++ readArcFile(line, NULL, view, NULL, NULL, annotationMap); 3.47 ++ } 3.48 + inFile.close(); 3.49 + delete [] line; 3.50 + } 3.51 +--- xplanet-1.3.0.orig/src/libannotate/addMarkers.cpp 3.52 ++++ xplanet-1.3.0/src/libannotate/addMarkers.cpp 3.53 +@@ -423,13 +423,16 @@ addMarkers(PlanetProperties *planetPrope 3.54 + { 3.55 + ifstream inFile(markerFile.c_str()); 3.56 + char *line = new char[MAX_LINE_LENGTH]; 3.57 +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) 3.58 ++ while (1) 3.59 + { 3.60 + unsigned char color[3]; 3.61 + memcpy(color, planetProperties->MarkerColor(), 3); 3.62 + string font(planetProperties->MarkerFont()); 3.63 + int fontSize(planetProperties->MarkerFontSize()); 3.64 + 3.65 ++ inFile.getline (line, MAX_LINE_LENGTH, '\n'); 3.66 ++ if (inFile.eof() || inFile.fail()) 3.67 ++ break; 3.68 + readMarkerFile(line, planet, pixel_radius, X, Y, Z, 3.69 + view, projection, width, height, 3.70 + color, font, fontSize, 3.71 +@@ -469,13 +472,18 @@ addMarkers(View *view, const int width, 3.72 + { 3.73 + ifstream inFile(markerFile.c_str()); 3.74 + char *line = new char[MAX_LINE_LENGTH]; 3.75 +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) 3.76 +- { 3.77 ++ while (1) 3.78 ++ { 3.79 ++ inFile.getline (line, MAX_LINE_LENGTH, '\n'); 3.80 ++ 3.81 + unsigned char color[3]; 3.82 + memcpy(color, options->Color(), 3); 3.83 + string font(options->Font()); 3.84 + int fontSize(options->FontSize()); 3.85 + 3.86 ++ if (inFile.eof() || inFile.fail()) 3.87 ++ break; 3.88 ++ 3.89 + readMarkerFile(line, NULL, 0, 0, 0, 0, 3.90 + view, NULL, width, height, 3.91 + color, font, fontSize, 1.0, 3.92 +--- xplanet-1.3.0.orig/src/libannotate/addSatellites.cpp 3.93 ++++ xplanet-1.3.0/src/libannotate/addSatellites.cpp 3.94 +@@ -488,11 +488,23 @@ loadSatelliteVector(PlanetProperties *pl 3.95 + { 3.96 + ifstream inFile(tleFile.c_str()); 3.97 + char lines[3][80]; 3.98 +- while (inFile.getline(lines[0], 80) != NULL) 3.99 +- { 3.100 +- if ((inFile.getline(lines[1], 80) == NULL) 3.101 +- || (inFile.getline(lines[2], 80) == NULL)) 3.102 +- { 3.103 ++ bool malformed_file = false; 3.104 ++ while (1) 3.105 ++ { 3.106 ++ inFile.getline(lines[0], 80); 3.107 ++ if (inFile.eof() || inFile.fail()) 3.108 ++ break; 3.109 ++ inFile.getline(lines[1], 80); 3.110 ++ if (inFile.eof() || inFile.fail()) 3.111 ++ malformed_file = true; 3.112 ++ else 3.113 ++ { 3.114 ++ inFile.getline(lines[2], 80); 3.115 ++ if (inFile.eof() || inFile.fail()) 3.116 ++ malformed_file = true; 3.117 ++ } 3.118 ++ if (malformed_file) 3.119 ++ { 3.120 + ostringstream errStr; 3.121 + errStr << "Malformed TLE file (" << tleFile << ")?\n"; 3.122 + xpWarn(errStr.str(), __FILE__, __LINE__); 3.123 +@@ -542,10 +554,14 @@ addSatellites(PlanetProperties *planetPr 3.124 + { 3.125 + ifstream inFile(satFile.c_str()); 3.126 + char *line = new char[MAX_LINE_LENGTH]; 3.127 +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) 3.128 ++ while (1) 3.129 ++ { 3.130 ++ inFile.getline (line, MAX_LINE_LENGTH, '\n'); 3.131 ++ if (inFile.eof() || inFile.fail()) 3.132 ++ break; 3.133 + readSatelliteFile(line, planet, view, projection, 3.134 + planetProperties, annotationMap); 3.135 +- 3.136 ++ } 3.137 + inFile.close(); 3.138 + delete [] line; 3.139 + } 3.140 +--- xplanet-1.3.0.orig/src/libmultiple/RayleighScattering.cpp 3.141 ++++ xplanet-1.3.0/src/libmultiple/RayleighScattering.cpp 3.142 +@@ -369,8 +369,12 @@ RayleighScattering::readConfigFile(strin 3.143 + 3.144 + diskTemplate_.clear(); 3.145 + limbTemplate_.clear(); 3.146 +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) 3.147 ++ while (1) 3.148 + { 3.149 ++ inFile.getline(line, MAX_LINE_LENGTH, '\n'); 3.150 ++ if (inFile.eof() || inFile.fail()) 3.151 ++ break; 3.152 ++ 3.153 + int i = 0; 3.154 + while (isDelimiter(line[i])) 3.155 + { 3.156 +@@ -439,8 +443,12 @@ RayleighScattering::readBlock(ifstream & 3.157 + values.clear(); 3.158 + 3.159 + char line[MAX_LINE_LENGTH]; 3.160 +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) 3.161 ++ while (1) 3.162 + { 3.163 ++ inFile.getline(line, MAX_LINE_LENGTH, '\n'); 3.164 ++ if (inFile.eof() || inFile.fail()) 3.165 ++ break; 3.166 ++ 3.167 + int i = 0; 3.168 + while (isDelimiter(line[i])) 3.169 + { 3.170 +@@ -470,8 +478,12 @@ RayleighScattering::readValue(ifstream & 3.171 + double &value) 3.172 + { 3.173 + char line[MAX_LINE_LENGTH]; 3.174 +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) 3.175 ++ while (1) 3.176 + { 3.177 ++ inFile.getline(line, MAX_LINE_LENGTH, '\n'); 3.178 ++ if (inFile.eof() || inFile.fail()) 3.179 ++ break; 3.180 ++ 3.181 + int i = 0; 3.182 + while (isDelimiter(line[i])) 3.183 + { 3.184 +--- xplanet-1.3.0.orig/src/libmultiple/drawStars.cpp 3.185 ++++ xplanet-1.3.0/src/libmultiple/drawStars.cpp 3.186 +@@ -41,8 +41,12 @@ drawStars(DisplayBase *display, View *vi 3.187 + ifstream inFile(starMap.c_str()); 3.188 + 3.189 + char line[MAX_LINE_LENGTH]; 3.190 +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) 3.191 ++ while (1) 3.192 + { 3.193 ++ inFile.getline(line, MAX_LINE_LENGTH, '\n'); 3.194 ++ if (inFile.eof() || inFile.fail()) 3.195 ++ break; 3.196 ++ 3.197 + if (line[0] == '#') continue; 3.198 + 3.199 + double Vmag, RA, Dec; 3.200 +--- xplanet-1.3.0.orig/src/readConfig.cpp 3.201 ++++ xplanet-1.3.0/src/readConfig.cpp 3.202 +@@ -550,9 +550,13 @@ readConfigFile(string configFile, Planet 3.203 + 3.204 + ifstream inFile(configFile.c_str()); 3.205 + char *line = new char[256]; 3.206 +- while (inFile.getline(line, 256, '\n') != NULL) 3.207 ++ while (1) 3.208 ++ { 3.209 ++ inFile.getline(line, 256, '\n'); 3.210 ++ if (inFile.eof() || inFile.fail()) 3.211 ++ break; 3.212 + readConfig(line, planetProperties); 3.213 +- 3.214 ++ } 3.215 + // This condition will only be true if [default] is the only 3.216 + // section in the config file. In this case, set all planet 3.217 + // properties to the default values.
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/xplanet/stuff/patches/giflib5.diff Mon Nov 06 22:53:21 2017 +0200 4.3 @@ -0,0 +1,162 @@ 4.4 +Index: b/src/libimage/gif.c 4.5 +=================================================================== 4.6 +--- a/src/libimage/gif.c 4.7 ++++ b/src/libimage/gif.c 4.8 +@@ -38,32 +38,34 @@ read_gif(const char *filename, int *widt 4.9 + GifRecordType record_type; 4.10 + GifRowType *buffer = NULL; 4.11 + 4.12 +- int i, j; 4.13 ++ int i, j, err; 4.14 + int color_index; 4.15 + unsigned char *ptr = NULL; 4.16 + 4.17 +- infile = DGifOpenFileName(filename); 4.18 ++ infile = DGifOpenFileName(filename, &err); 4.19 + 4.20 + if (infile == NULL) 4.21 + { 4.22 +- PrintGifError(); 4.23 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.24 + return(0); 4.25 + } 4.26 + 4.27 + do 4.28 + { 4.29 +- if (DGifGetRecordType(infile, &record_type) == GIF_ERROR) 4.30 ++ err = DGifGetRecordType(infile, &record_type); 4.31 ++ if (err != GIF_OK) 4.32 + { 4.33 +- PrintGifError(); 4.34 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.35 + return(0); 4.36 + } 4.37 + 4.38 + switch (record_type) 4.39 + { 4.40 + case IMAGE_DESC_RECORD_TYPE: 4.41 +- if (DGifGetImageDesc(infile) == GIF_ERROR) 4.42 ++ err = DGifGetImageDesc(infile); 4.43 ++ if (err != GIF_OK) 4.44 + { 4.45 +- PrintGifError(); 4.46 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.47 + return(0); 4.48 + } 4.49 + 4.50 +@@ -105,16 +107,18 @@ read_gif(const char *filename, int *widt 4.51 + /* Skip extension blocks */ 4.52 + int ext_code; 4.53 + GifByteType *ext; 4.54 +- if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR) 4.55 ++ err = DGifGetExtension(infile, &ext_code, &ext); 4.56 ++ if (err != GIF_OK) 4.57 + { 4.58 +- PrintGifError(); 4.59 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.60 + return(0); 4.61 + } 4.62 + while (ext != NULL) 4.63 + { 4.64 +- if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR) 4.65 ++ err = DGifGetExtensionNext(infile, &ext); 4.66 ++ if (err != GIF_OK) 4.67 + { 4.68 +- PrintGifError(); 4.69 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.70 + return(0); 4.71 + } 4.72 + } 4.73 +@@ -154,14 +158,14 @@ read_gif(const char *filename, int *widt 4.74 + 4.75 + free(buffer); 4.76 + 4.77 +- DGifCloseFile(infile); 4.78 ++ DGifCloseFile(infile, NULL); 4.79 + return(1); 4.80 + } 4.81 + 4.82 + int 4.83 + write_gif(const char *filename, int width, int height, char *rgb) 4.84 + { 4.85 +- int i; 4.86 ++ int i, err; 4.87 + int colormap_size = 256; 4.88 + GifByteType *red, *green, *blue, *buffer, *ptr; 4.89 + GifFileType *outfile; 4.90 +@@ -178,7 +182,7 @@ write_gif(const char *filename, int widt 4.91 + return(0); 4.92 + } 4.93 + 4.94 +- colormap = MakeMapObject(colormap_size, NULL); 4.95 ++ colormap = GifMakeMapObject(colormap_size, NULL); 4.96 + 4.97 + for (i = 0; i < width * height; i++) 4.98 + { 4.99 +@@ -187,10 +191,11 @@ write_gif(const char *filename, int widt 4.100 + blue[i] = (GifByteType) rgb[3*i+2]; 4.101 + } 4.102 + 4.103 +- if (QuantizeBuffer(width, height, &colormap_size, red, green, blue, 4.104 +- buffer, colormap->Colors) == GIF_ERROR) 4.105 ++ err = GifQuantizeBuffer(width, height, &colormap_size, red, green, blue, 4.106 ++ buffer, colormap->Colors); 4.107 ++ if (err != GIF_OK) 4.108 + { 4.109 +- PrintGifError(); 4.110 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.111 + return(0); 4.112 + } 4.113 + 4.114 +@@ -198,24 +203,24 @@ write_gif(const char *filename, int widt 4.115 + free(green); 4.116 + free(blue); 4.117 + 4.118 +- outfile = EGifOpenFileName((char *) filename, FALSE); 4.119 ++ outfile = EGifOpenFileName((char *) filename, 0, &err); 4.120 + if (outfile == NULL) 4.121 + { 4.122 +- PrintGifError(); 4.123 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.124 + return(0); 4.125 + } 4.126 + 4.127 +- if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap) 4.128 +- == GIF_ERROR) 4.129 ++ err = EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap); 4.130 ++ if (err != GIF_OK) 4.131 + { 4.132 +- PrintGifError(); 4.133 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.134 + return(0); 4.135 + } 4.136 + 4.137 +- if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL) 4.138 ++ if (EGifPutImageDesc(outfile, 0, 0, width, height, 0, NULL) 4.139 + == GIF_ERROR) 4.140 + { 4.141 +- PrintGifError(); 4.142 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.143 + return(0); 4.144 + } 4.145 + 4.146 +@@ -224,7 +229,7 @@ write_gif(const char *filename, int widt 4.147 + { 4.148 + if (EGifPutLine(outfile, ptr, width) == GIF_ERROR) 4.149 + { 4.150 +- PrintGifError(); 4.151 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.152 + return(0); 4.153 + } 4.154 + ptr += width; 4.155 +@@ -232,8 +237,8 @@ write_gif(const char *filename, int widt 4.156 + 4.157 + EGifSpew(outfile); 4.158 + 4.159 +- if (EGifCloseFile(outfile) == GIF_ERROR) 4.160 +- PrintGifError(); 4.161 ++ if (EGifCloseFile(outfile, NULL) == GIF_ERROR) 4.162 ++ fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err)); 4.163 + 4.164 + free(buffer); 4.165 +