]> granicus.if.org Git - php/commitdiff
- MFB: gd #106, imagerectangle draws 1x1 rectangles as 1x3 rectangles
authorPierre Joye <pajoye@php.net>
Sun, 26 Aug 2007 20:35:11 +0000 (20:35 +0000)
committerPierre Joye <pajoye@php.net>
Sun, 26 Aug 2007 20:35:11 +0000 (20:35 +0000)
NEWS
ext/gd/libgd/gd.c
ext/gd/tests/libgd00106.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index c78632b128224064c58117d8a1d103ea12c0cf44..c2a20b17b23213ab92114ae3f317a83f663c6503 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+- Fixed regression in imagerectangle for 1x1 rectangle (gd bug #106) (Pierre)
 23 Aug 2007, PHP 5.2.4RC3
 - Fixed version_compare() to support "rc" as well as "RC" for release
   candidate version numbers.
index 301072f4e7c2ef373562e300a201ee3a3f09ff06..6e484adec5bcb3987baa9dde6c0ca6a972aeb8f9 100644 (file)
@@ -2124,6 +2124,12 @@ void gdImageRectangle (gdImagePtr im, int x1, int y1, int x2, int y2, int color)
        int half1 = 1;
        int t;
 
+
+       if (x1 == x2 && y1 == y2 && thick == 1) {
+               gdImageSetPixel(im, x1, y1, color);
+               return;
+       }
+
        if (y2 < y1) {
                t=y1;
                y1 = y2;
diff --git a/ext/gd/tests/libgd00106.phpt b/ext/gd/tests/libgd00106.phpt
new file mode 100644 (file)
index 0000000..65e4692
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+libgd #106 (imagerectangle 1x1 draws 1x3)
+--SKIPIF--
+<?php
+       if (!extension_loaded('gd')) die("skip gd extension not available\n");
+?>
+--FILE--
+<?php
+$im = imagecreatetruecolor(10,10);
+imagerectangle($im, 1,1, 1,1, 0xFFFFFF);
+$c1 = imagecolorat($im, 1,1);
+$c2 = imagecolorat($im, 1,2);
+$c3 = imagecolorat($im, 2,1);
+$c4 = imagecolorat($im, 2,2);
+if ($c1 == 0xFFFFFF && $c2 == 0 && $c3 == 0 && $c4 == 0) {
+       echo "Ok";
+} else {
+       echo "failed";
+}
+?>
+--EXPECT--
+Ok