wok-next annotate xplanet/stuff/patches/giflib5.diff @ 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
children
rev   line source
al@20241 1 Index: b/src/libimage/gif.c
al@20241 2 ===================================================================
al@20241 3 --- a/src/libimage/gif.c
al@20241 4 +++ b/src/libimage/gif.c
al@20241 5 @@ -38,32 +38,34 @@ read_gif(const char *filename, int *widt
al@20241 6 GifRecordType record_type;
al@20241 7 GifRowType *buffer = NULL;
al@20241 8
al@20241 9 - int i, j;
al@20241 10 + int i, j, err;
al@20241 11 int color_index;
al@20241 12 unsigned char *ptr = NULL;
al@20241 13
al@20241 14 - infile = DGifOpenFileName(filename);
al@20241 15 + infile = DGifOpenFileName(filename, &err);
al@20241 16
al@20241 17 if (infile == NULL)
al@20241 18 {
al@20241 19 - PrintGifError();
al@20241 20 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 21 return(0);
al@20241 22 }
al@20241 23
al@20241 24 do
al@20241 25 {
al@20241 26 - if (DGifGetRecordType(infile, &record_type) == GIF_ERROR)
al@20241 27 + err = DGifGetRecordType(infile, &record_type);
al@20241 28 + if (err != GIF_OK)
al@20241 29 {
al@20241 30 - PrintGifError();
al@20241 31 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 32 return(0);
al@20241 33 }
al@20241 34
al@20241 35 switch (record_type)
al@20241 36 {
al@20241 37 case IMAGE_DESC_RECORD_TYPE:
al@20241 38 - if (DGifGetImageDesc(infile) == GIF_ERROR)
al@20241 39 + err = DGifGetImageDesc(infile);
al@20241 40 + if (err != GIF_OK)
al@20241 41 {
al@20241 42 - PrintGifError();
al@20241 43 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 44 return(0);
al@20241 45 }
al@20241 46
al@20241 47 @@ -105,16 +107,18 @@ read_gif(const char *filename, int *widt
al@20241 48 /* Skip extension blocks */
al@20241 49 int ext_code;
al@20241 50 GifByteType *ext;
al@20241 51 - if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR)
al@20241 52 + err = DGifGetExtension(infile, &ext_code, &ext);
al@20241 53 + if (err != GIF_OK)
al@20241 54 {
al@20241 55 - PrintGifError();
al@20241 56 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 57 return(0);
al@20241 58 }
al@20241 59 while (ext != NULL)
al@20241 60 {
al@20241 61 - if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR)
al@20241 62 + err = DGifGetExtensionNext(infile, &ext);
al@20241 63 + if (err != GIF_OK)
al@20241 64 {
al@20241 65 - PrintGifError();
al@20241 66 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 67 return(0);
al@20241 68 }
al@20241 69 }
al@20241 70 @@ -154,14 +158,14 @@ read_gif(const char *filename, int *widt
al@20241 71
al@20241 72 free(buffer);
al@20241 73
al@20241 74 - DGifCloseFile(infile);
al@20241 75 + DGifCloseFile(infile, NULL);
al@20241 76 return(1);
al@20241 77 }
al@20241 78
al@20241 79 int
al@20241 80 write_gif(const char *filename, int width, int height, char *rgb)
al@20241 81 {
al@20241 82 - int i;
al@20241 83 + int i, err;
al@20241 84 int colormap_size = 256;
al@20241 85 GifByteType *red, *green, *blue, *buffer, *ptr;
al@20241 86 GifFileType *outfile;
al@20241 87 @@ -178,7 +182,7 @@ write_gif(const char *filename, int widt
al@20241 88 return(0);
al@20241 89 }
al@20241 90
al@20241 91 - colormap = MakeMapObject(colormap_size, NULL);
al@20241 92 + colormap = GifMakeMapObject(colormap_size, NULL);
al@20241 93
al@20241 94 for (i = 0; i < width * height; i++)
al@20241 95 {
al@20241 96 @@ -187,10 +191,11 @@ write_gif(const char *filename, int widt
al@20241 97 blue[i] = (GifByteType) rgb[3*i+2];
al@20241 98 }
al@20241 99
al@20241 100 - if (QuantizeBuffer(width, height, &colormap_size, red, green, blue,
al@20241 101 - buffer, colormap->Colors) == GIF_ERROR)
al@20241 102 + err = GifQuantizeBuffer(width, height, &colormap_size, red, green, blue,
al@20241 103 + buffer, colormap->Colors);
al@20241 104 + if (err != GIF_OK)
al@20241 105 {
al@20241 106 - PrintGifError();
al@20241 107 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 108 return(0);
al@20241 109 }
al@20241 110
al@20241 111 @@ -198,24 +203,24 @@ write_gif(const char *filename, int widt
al@20241 112 free(green);
al@20241 113 free(blue);
al@20241 114
al@20241 115 - outfile = EGifOpenFileName((char *) filename, FALSE);
al@20241 116 + outfile = EGifOpenFileName((char *) filename, 0, &err);
al@20241 117 if (outfile == NULL)
al@20241 118 {
al@20241 119 - PrintGifError();
al@20241 120 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 121 return(0);
al@20241 122 }
al@20241 123
al@20241 124 - if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap)
al@20241 125 - == GIF_ERROR)
al@20241 126 + err = EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap);
al@20241 127 + if (err != GIF_OK)
al@20241 128 {
al@20241 129 - PrintGifError();
al@20241 130 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 131 return(0);
al@20241 132 }
al@20241 133
al@20241 134 - if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL)
al@20241 135 + if (EGifPutImageDesc(outfile, 0, 0, width, height, 0, NULL)
al@20241 136 == GIF_ERROR)
al@20241 137 {
al@20241 138 - PrintGifError();
al@20241 139 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 140 return(0);
al@20241 141 }
al@20241 142
al@20241 143 @@ -224,7 +229,7 @@ write_gif(const char *filename, int widt
al@20241 144 {
al@20241 145 if (EGifPutLine(outfile, ptr, width) == GIF_ERROR)
al@20241 146 {
al@20241 147 - PrintGifError();
al@20241 148 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 149 return(0);
al@20241 150 }
al@20241 151 ptr += width;
al@20241 152 @@ -232,8 +237,8 @@ write_gif(const char *filename, int widt
al@20241 153
al@20241 154 EGifSpew(outfile);
al@20241 155
al@20241 156 - if (EGifCloseFile(outfile) == GIF_ERROR)
al@20241 157 - PrintGifError();
al@20241 158 + if (EGifCloseFile(outfile, NULL) == GIF_ERROR)
al@20241 159 + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
al@20241 160
al@20241 161 free(buffer);
al@20241 162