wok-current diff xplanet/stuff/xplanet-giflib5.patch @ rev 24784
updated yaws (2.0.7 -> 2.1.1)
author | Hans-G?nter Theisgen |
---|---|
date | Mon Mar 21 07:11:54 2022 +0100 (2022-03-21) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/xplanet/stuff/xplanet-giflib5.patch Mon Mar 21 07:11:54 2022 +0100 1.3 @@ -0,0 +1,214 @@ 1.4 +--- xplanet-1.3.0.orig/src/libimage/gif.c 2006-03-25 14:50:51.000000000 -0800 1.5 ++++ xplanet-1.3.0/src/libimage/gif.c 2015-01-30 21:01:52.000000000 -0800 1.6 +@@ -28,6 +28,18 @@ 1.7 + distribution. 1.8 + */ 1.9 + 1.10 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.11 ++void 1.12 ++PrintGifError(int ErrorCode) { 1.13 ++ const char *Err = GifErrorString(ErrorCode); 1.14 ++ if (Err != NULL) 1.15 ++ fprintf(stderr, "GIF-LIB error: %s.\n", Err); 1.16 ++ else 1.17 ++ fprintf(stderr, "GIF-LIB undefined error %d.\n", ErrorCode); 1.18 ++} 1.19 ++#endif 1.20 ++ 1.21 ++ 1.22 + int 1.23 + read_gif(const char *filename, int *width, int *height, unsigned char **rgb) 1.24 + { 1.25 +@@ -41,12 +53,23 @@ 1.26 + int i, j; 1.27 + int color_index; 1.28 + unsigned char *ptr = NULL; 1.29 +- 1.30 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.31 ++ int err; 1.32 ++#endif 1.33 ++ 1.34 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.35 ++ infile = DGifOpenFileName(filename, NULL); 1.36 ++#else 1.37 + infile = DGifOpenFileName(filename); 1.38 ++#endif 1.39 + 1.40 + if (infile == NULL) 1.41 + { 1.42 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.43 ++ PrintGifError(infile->Error); 1.44 ++#else 1.45 + PrintGifError(); 1.46 ++#endif 1.47 + return(0); 1.48 + } 1.49 + 1.50 +@@ -54,7 +77,11 @@ 1.51 + { 1.52 + if (DGifGetRecordType(infile, &record_type) == GIF_ERROR) 1.53 + { 1.54 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.55 ++ PrintGifError(infile->Error); 1.56 ++#else 1.57 + PrintGifError(); 1.58 ++#endif 1.59 + return(0); 1.60 + } 1.61 + 1.62 +@@ -63,7 +90,11 @@ 1.63 + case IMAGE_DESC_RECORD_TYPE: 1.64 + if (DGifGetImageDesc(infile) == GIF_ERROR) 1.65 + { 1.66 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.67 ++ PrintGifError(infile->Error); 1.68 ++#else 1.69 + PrintGifError(); 1.70 ++#endif 1.71 + return(0); 1.72 + } 1.73 + 1.74 +@@ -107,14 +138,22 @@ 1.75 + GifByteType *ext; 1.76 + if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR) 1.77 + { 1.78 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.79 ++ PrintGifError(infile->Error); 1.80 ++#else 1.81 + PrintGifError(); 1.82 ++#endif 1.83 + return(0); 1.84 + } 1.85 + while (ext != NULL) 1.86 + { 1.87 + if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR) 1.88 + { 1.89 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.90 ++ PrintGifError(infile->Error); 1.91 ++#else 1.92 + PrintGifError(); 1.93 ++#endif 1.94 + return(0); 1.95 + } 1.96 + } 1.97 +@@ -154,7 +193,11 @@ 1.98 + 1.99 + free(buffer); 1.100 + 1.101 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 1.102 ++ DGifCloseFile(infile, NULL); 1.103 ++#else 1.104 + DGifCloseFile(infile); 1.105 ++#endif 1.106 + return(1); 1.107 + } 1.108 + 1.109 +@@ -166,6 +209,9 @@ 1.110 + GifByteType *red, *green, *blue, *buffer, *ptr; 1.111 + GifFileType *outfile; 1.112 + ColorMapObject *colormap; 1.113 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.114 ++ int err; 1.115 ++#endif 1.116 + 1.117 + red = malloc(width * height * sizeof(GifByteType)); 1.118 + green = malloc(width * height * sizeof(GifByteType)); 1.119 +@@ -178,7 +224,11 @@ 1.120 + return(0); 1.121 + } 1.122 + 1.123 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.124 ++ colormap = GifMakeMapObject(colormap_size, NULL); 1.125 ++#else 1.126 + colormap = MakeMapObject(colormap_size, NULL); 1.127 ++#endif 1.128 + 1.129 + for (i = 0; i < width * height; i++) 1.130 + { 1.131 +@@ -187,10 +237,17 @@ 1.132 + blue[i] = (GifByteType) rgb[3*i+2]; 1.133 + } 1.134 + 1.135 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.136 ++ if (GifQuantizeBuffer(width, height, &colormap_size, red, green, blue, 1.137 ++ buffer, colormap->Colors) == GIF_ERROR) 1.138 ++ { 1.139 ++ PrintGifError(-1); 1.140 ++#else 1.141 + if (QuantizeBuffer(width, height, &colormap_size, red, green, blue, 1.142 + buffer, colormap->Colors) == GIF_ERROR) 1.143 + { 1.144 + PrintGifError(); 1.145 ++#endif 1.146 + return(0); 1.147 + } 1.148 + 1.149 +@@ -198,24 +255,41 @@ 1.150 + free(green); 1.151 + free(blue); 1.152 + 1.153 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.154 ++ outfile = EGifOpenFileName((char *) filename, 0, &err); 1.155 ++ if (outfile == NULL) 1.156 ++ { 1.157 ++ PrintGifError(err); 1.158 ++ return(0); 1.159 ++ } 1.160 ++#else 1.161 + outfile = EGifOpenFileName((char *) filename, FALSE); 1.162 + if (outfile == NULL) 1.163 + { 1.164 + PrintGifError(); 1.165 + return(0); 1.166 + } 1.167 ++#endif 1.168 + 1.169 + if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap) 1.170 + == GIF_ERROR) 1.171 + { 1.172 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.173 ++ PrintGifError(outfile->Error); 1.174 ++#else 1.175 + PrintGifError(); 1.176 ++#endif 1.177 + return(0); 1.178 + } 1.179 + 1.180 +- if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL) 1.181 ++ if (EGifPutImageDesc(outfile, 0, 0, width, height, 0, NULL) 1.182 + == GIF_ERROR) 1.183 + { 1.184 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.185 ++ PrintGifError(outfile->Error); 1.186 ++#else 1.187 + PrintGifError(); 1.188 ++#endif 1.189 + return(0); 1.190 + } 1.191 + 1.192 +@@ -224,7 +298,11 @@ 1.193 + { 1.194 + if (EGifPutLine(outfile, ptr, width) == GIF_ERROR) 1.195 + { 1.196 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 1.197 ++ PrintGifError(outfile->Error); 1.198 ++#else 1.199 + PrintGifError(); 1.200 ++#endif 1.201 + return(0); 1.202 + } 1.203 + ptr += width; 1.204 +@@ -232,8 +310,13 @@ 1.205 + 1.206 + EGifSpew(outfile); 1.207 + 1.208 ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 1.209 ++ if (EGifCloseFile(outfile, &err) == GIF_ERROR) 1.210 ++ PrintGifError(err); 1.211 ++#else 1.212 + if (EGifCloseFile(outfile) == GIF_ERROR) 1.213 + PrintGifError(); 1.214 ++#endif 1.215 + 1.216 + free(buffer); 1.217 +