cvs: gd /libgd NEWS /libgd/src gd_gif_out.c /libgd/tests/gif CMakeLists.txt Makefile.am bug00181.c
[email protected] ("Takeshi Abe") Mon, 03 Nov 2008 13:24:36 -0000
| Newsgroups | php.gd.cvs |
|---|---|
| Message-ID | <cvstabe1225718676@cvsserver> |
tabe Mon Nov 3 13:24:36 2008 UTC
Added files:
/gd/libgd/tests/gif bug00181.c
Modified files:
/gd/libgd NEWS
/gd/libgd/src gd_gif_out.c
/gd/libgd/tests/gif CMakeLists.txt Makefile.am
Log:
fixed #181.
http://cvs.php.net/viewvc.cgi/gd/libgd/NEWS?r1=1.2&r2=1.3&diff_format=u
Index: gd/libgd/NEWS
diff -u gd/libgd/NEWS:1.2 gd/libgd/NEWS:1.3
--- gd/libgd/NEWS:1.2 Sun Sep 28 01:05:18 2008
+++ gd/libgd/NEWS Mon Nov 3 13:24:36 2008
@@ -25,6 +25,7 @@
166, Fixed handling 3-digit RGB and transparent color in XPM (Takeshi Abe)
173, Fixed the memory management in font_path() of gdft.c (Takeshi Abe)
174, Fixed that font_path() in gdft.c breaks reentrancy (Takeshi Abe)
+181, Fixed gd_gif_out.c to enable proper interlace
GD 2.0.35 (2007-06-21)
41, Fix valgrind error in gdImageFillTiled (Nuno Lopes)
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_gif_out.c?r1=1.8&r2=1.9&diff_format=u
Index: gd/libgd/src/gd_gif_out.c
diff -u gd/libgd/src/gd_gif_out.c:1.8 gd/libgd/src/gd_gif_out.c:1.9
--- gd/libgd/src/gd_gif_out.c:1.8 Sun Oct 28 23:09:09 2007
+++ gd/libgd/src/gd_gif_out.c Mon Nov 3 13:24:36 2008
@@ -593,11 +593,11 @@
int i;
GifCtx ctx;
+ memset(&ctx, 0, sizeof(ctx));
+
ctx.Interlace = GInterlace;
ctx.in_count = 1;
- memset(&ctx, 0, sizeof(ctx));
-
ColorMapSize = 1 << BitsPerPixel;
RWidth = ctx.Width = GWidth;
@@ -704,11 +704,11 @@
int i;
GifCtx ctx;
+ memset(&ctx, 0, sizeof(ctx));
+
ctx.Interlace = GInterlace;
ctx.in_count = 1;
- memset(&ctx, 0, sizeof(ctx));
-
ColorMapSize = 1 << BitsPerPixel;
if(LeftOfs < 0) {
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gif/CMakeLists.txt?r1=1.2&r2=1.3&diff_format=u
Index: gd/libgd/tests/gif/CMakeLists.txt
diff -u gd/libgd/tests/gif/CMakeLists.txt:1.2 gd/libgd/tests/gif/CMakeLists.txt:1.3
--- gd/libgd/tests/gif/CMakeLists.txt:1.2 Fri Apr 18 14:32:09 2008
+++ gd/libgd/tests/gif/CMakeLists.txt Mon Nov 3 13:24:36 2008
@@ -5,6 +5,7 @@
bug00006
bug00060
bug00066
+ bug00181
)
FOREACH(test_name ${TESTS_FILES})
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gif/Makefile.am?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/gif/Makefile.am
diff -u gd/libgd/tests/gif/Makefile.am:1.1 gd/libgd/tests/gif/Makefile.am:1.2
--- gd/libgd/tests/gif/Makefile.am:1.1 Sat May 10 20:19:28 2008
+++ gd/libgd/tests/gif/Makefile.am Mon Nov 3 13:24:36 2008
@@ -1,3 +1,3 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
-EXTRA_DIST = CMakeLists.txt bug00005_0.gif bug00005_2.c bug00005_2.gif bug00005.c bug00060.c bug00066.c bug00066.gif bug00005_1.gif bug00005_2_exp.png bug00005_3.gif bug00006.c bug00060.gif bug00066_exp.png
+EXTRA_DIST = CMakeLists.txt bug00005_0.gif bug00005_2.c bug00005_2.gif bug00005.c bug00060.c bug00066.c bug00066.gif bug00005_1.gif bug00005_2_exp.png bug00005_3.gif bug00006.c bug00060.gif bug00066_exp.png bug00181.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gif/bug00181.c?view=markup&rev=1.1
Index: gd/libgd/tests/gif/bug00181.c
+++ gd/libgd/tests/gif/bug00181.c
#include <stdio.h>
#include <gd.h>
#include <gdtest.h>
int main()
{
gdImagePtr im, im2, im3;
FILE *fp;
int black, white, trans;
int error = 0;
/* GIFEncode */
im = gdImageCreate(100, 100);
im->interlace = 1;
fp = fopen("bug00181.gif", "wb");
gdImageGif(im, fp);
gdImageDestroy(im);
fclose(fp);
fp = fopen("bug00181.gif", "rb");
im = gdImageCreateFromGif(fp);
error = !im->interlace;
gdImageDestroy(im);
fclose(fp);
if (error) return error;
/* GIFAnimEncode */
im = gdImageCreate(100, 100);
im->interlace = 1;
white = gdImageColorAllocate(im, 255, 255, 255);
black = gdImageColorAllocate(im, 0, 0, 0);
trans = gdImageColorAllocate(im, 1, 1, 1);
gdImageRectangle(im, 0, 0, 10, 10, black);
fp = fopen("bug00181a.gif", "wb");
gdImageGifAnimBegin(im, fp, 1, 3);
gdImageGifAnimAdd(im, fp, 0, 0, 0, 100, 1, NULL);
im2 = gdImageCreate(100, 100);
im2->interlace = 1;
(void)gdImageColorAllocate(im2, 255, 255, 255);
gdImagePaletteCopy (im2, im);
gdImageRectangle(im2, 0, 0, 15, 15, black);
gdImageColorTransparent (im2, trans);
gdImageGifAnimAdd(im2, fp, 0, 0, 0, 100, 1, im);
im3 = gdImageCreate(100, 100);
im3->interlace = 1;
(void)gdImageColorAllocate(im3, 255, 255, 255);
gdImagePaletteCopy (im3, im);
gdImageRectangle(im3, 0, 0, 15, 20, black);
gdImageColorTransparent (im3, trans);
gdImageGifAnimAdd(im3, fp, 0, 0, 0, 100, 1, im2);
gdImageGifAnimEnd(fp);
fclose(fp);
gdImageDestroy(im);
gdImageDestroy(im2);
gdImageDestroy(im3);
fp = fopen("bug00181a.gif", "rb");
im = gdImageCreateFromGif(fp);
error = !im->interlace;
gdImageDestroy(im);
fclose(fp);
return error;
}