wok annotate xplanet/stuff/xplanet-giflib5.patch @ rev 25035

Up libqcow (20210419)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri May 20 18:11:13 2022 +0000 (2022-05-20)
parents
children
rev   line source
pascal@23056 1 --- xplanet-1.3.0.orig/src/libimage/gif.c 2006-03-25 14:50:51.000000000 -0800
pascal@23056 2 +++ xplanet-1.3.0/src/libimage/gif.c 2015-01-30 21:01:52.000000000 -0800
pascal@23056 3 @@ -28,6 +28,18 @@
pascal@23056 4 distribution.
pascal@23056 5 */
pascal@23056 6
pascal@23056 7 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 8 +void
pascal@23056 9 +PrintGifError(int ErrorCode) {
pascal@23056 10 + const char *Err = GifErrorString(ErrorCode);
pascal@23056 11 + if (Err != NULL)
pascal@23056 12 + fprintf(stderr, "GIF-LIB error: %s.\n", Err);
pascal@23056 13 + else
pascal@23056 14 + fprintf(stderr, "GIF-LIB undefined error %d.\n", ErrorCode);
pascal@23056 15 +}
pascal@23056 16 +#endif
pascal@23056 17 +
pascal@23056 18 +
pascal@23056 19 int
pascal@23056 20 read_gif(const char *filename, int *width, int *height, unsigned char **rgb)
pascal@23056 21 {
pascal@23056 22 @@ -41,12 +53,23 @@
pascal@23056 23 int i, j;
pascal@23056 24 int color_index;
pascal@23056 25 unsigned char *ptr = NULL;
pascal@23056 26 -
pascal@23056 27 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 28 + int err;
pascal@23056 29 +#endif
pascal@23056 30 +
pascal@23056 31 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 32 + infile = DGifOpenFileName(filename, NULL);
pascal@23056 33 +#else
pascal@23056 34 infile = DGifOpenFileName(filename);
pascal@23056 35 +#endif
pascal@23056 36
pascal@23056 37 if (infile == NULL)
pascal@23056 38 {
pascal@23056 39 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 40 + PrintGifError(infile->Error);
pascal@23056 41 +#else
pascal@23056 42 PrintGifError();
pascal@23056 43 +#endif
pascal@23056 44 return(0);
pascal@23056 45 }
pascal@23056 46
pascal@23056 47 @@ -54,7 +77,11 @@
pascal@23056 48 {
pascal@23056 49 if (DGifGetRecordType(infile, &record_type) == GIF_ERROR)
pascal@23056 50 {
pascal@23056 51 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 52 + PrintGifError(infile->Error);
pascal@23056 53 +#else
pascal@23056 54 PrintGifError();
pascal@23056 55 +#endif
pascal@23056 56 return(0);
pascal@23056 57 }
pascal@23056 58
pascal@23056 59 @@ -63,7 +90,11 @@
pascal@23056 60 case IMAGE_DESC_RECORD_TYPE:
pascal@23056 61 if (DGifGetImageDesc(infile) == GIF_ERROR)
pascal@23056 62 {
pascal@23056 63 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 64 + PrintGifError(infile->Error);
pascal@23056 65 +#else
pascal@23056 66 PrintGifError();
pascal@23056 67 +#endif
pascal@23056 68 return(0);
pascal@23056 69 }
pascal@23056 70
pascal@23056 71 @@ -107,14 +138,22 @@
pascal@23056 72 GifByteType *ext;
pascal@23056 73 if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR)
pascal@23056 74 {
pascal@23056 75 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 76 + PrintGifError(infile->Error);
pascal@23056 77 +#else
pascal@23056 78 PrintGifError();
pascal@23056 79 +#endif
pascal@23056 80 return(0);
pascal@23056 81 }
pascal@23056 82 while (ext != NULL)
pascal@23056 83 {
pascal@23056 84 if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR)
pascal@23056 85 {
pascal@23056 86 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 87 + PrintGifError(infile->Error);
pascal@23056 88 +#else
pascal@23056 89 PrintGifError();
pascal@23056 90 +#endif
pascal@23056 91 return(0);
pascal@23056 92 }
pascal@23056 93 }
pascal@23056 94 @@ -154,7 +193,11 @@
pascal@23056 95
pascal@23056 96 free(buffer);
pascal@23056 97
pascal@23056 98 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
pascal@23056 99 + DGifCloseFile(infile, NULL);
pascal@23056 100 +#else
pascal@23056 101 DGifCloseFile(infile);
pascal@23056 102 +#endif
pascal@23056 103 return(1);
pascal@23056 104 }
pascal@23056 105
pascal@23056 106 @@ -166,6 +209,9 @@
pascal@23056 107 GifByteType *red, *green, *blue, *buffer, *ptr;
pascal@23056 108 GifFileType *outfile;
pascal@23056 109 ColorMapObject *colormap;
pascal@23056 110 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 111 + int err;
pascal@23056 112 +#endif
pascal@23056 113
pascal@23056 114 red = malloc(width * height * sizeof(GifByteType));
pascal@23056 115 green = malloc(width * height * sizeof(GifByteType));
pascal@23056 116 @@ -178,7 +224,11 @@
pascal@23056 117 return(0);
pascal@23056 118 }
pascal@23056 119
pascal@23056 120 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 121 + colormap = GifMakeMapObject(colormap_size, NULL);
pascal@23056 122 +#else
pascal@23056 123 colormap = MakeMapObject(colormap_size, NULL);
pascal@23056 124 +#endif
pascal@23056 125
pascal@23056 126 for (i = 0; i < width * height; i++)
pascal@23056 127 {
pascal@23056 128 @@ -187,10 +237,17 @@
pascal@23056 129 blue[i] = (GifByteType) rgb[3*i+2];
pascal@23056 130 }
pascal@23056 131
pascal@23056 132 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 133 + if (GifQuantizeBuffer(width, height, &colormap_size, red, green, blue,
pascal@23056 134 + buffer, colormap->Colors) == GIF_ERROR)
pascal@23056 135 + {
pascal@23056 136 + PrintGifError(-1);
pascal@23056 137 +#else
pascal@23056 138 if (QuantizeBuffer(width, height, &colormap_size, red, green, blue,
pascal@23056 139 buffer, colormap->Colors) == GIF_ERROR)
pascal@23056 140 {
pascal@23056 141 PrintGifError();
pascal@23056 142 +#endif
pascal@23056 143 return(0);
pascal@23056 144 }
pascal@23056 145
pascal@23056 146 @@ -198,24 +255,41 @@
pascal@23056 147 free(green);
pascal@23056 148 free(blue);
pascal@23056 149
pascal@23056 150 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 151 + outfile = EGifOpenFileName((char *) filename, 0, &err);
pascal@23056 152 + if (outfile == NULL)
pascal@23056 153 + {
pascal@23056 154 + PrintGifError(err);
pascal@23056 155 + return(0);
pascal@23056 156 + }
pascal@23056 157 +#else
pascal@23056 158 outfile = EGifOpenFileName((char *) filename, FALSE);
pascal@23056 159 if (outfile == NULL)
pascal@23056 160 {
pascal@23056 161 PrintGifError();
pascal@23056 162 return(0);
pascal@23056 163 }
pascal@23056 164 +#endif
pascal@23056 165
pascal@23056 166 if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap)
pascal@23056 167 == GIF_ERROR)
pascal@23056 168 {
pascal@23056 169 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 170 + PrintGifError(outfile->Error);
pascal@23056 171 +#else
pascal@23056 172 PrintGifError();
pascal@23056 173 +#endif
pascal@23056 174 return(0);
pascal@23056 175 }
pascal@23056 176
pascal@23056 177 - if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL)
pascal@23056 178 + if (EGifPutImageDesc(outfile, 0, 0, width, height, 0, NULL)
pascal@23056 179 == GIF_ERROR)
pascal@23056 180 {
pascal@23056 181 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 182 + PrintGifError(outfile->Error);
pascal@23056 183 +#else
pascal@23056 184 PrintGifError();
pascal@23056 185 +#endif
pascal@23056 186 return(0);
pascal@23056 187 }
pascal@23056 188
pascal@23056 189 @@ -224,7 +298,11 @@
pascal@23056 190 {
pascal@23056 191 if (EGifPutLine(outfile, ptr, width) == GIF_ERROR)
pascal@23056 192 {
pascal@23056 193 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
pascal@23056 194 + PrintGifError(outfile->Error);
pascal@23056 195 +#else
pascal@23056 196 PrintGifError();
pascal@23056 197 +#endif
pascal@23056 198 return(0);
pascal@23056 199 }
pascal@23056 200 ptr += width;
pascal@23056 201 @@ -232,8 +310,13 @@
pascal@23056 202
pascal@23056 203 EGifSpew(outfile);
pascal@23056 204
pascal@23056 205 +#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
pascal@23056 206 + if (EGifCloseFile(outfile, &err) == GIF_ERROR)
pascal@23056 207 + PrintGifError(err);
pascal@23056 208 +#else
pascal@23056 209 if (EGifCloseFile(outfile) == GIF_ERROR)
pascal@23056 210 PrintGifError();
pascal@23056 211 +#endif
pascal@23056 212
pascal@23056 213 free(buffer);
pascal@23056 214