iliaa Sun Mar 30 15:48:14 2003 EDT
Modified files: (Branch: PHP_4_3)
/php4/ext/gd/libgd gd.c
Log:
MFH
Index: php4/ext/gd/libgd/gd.c
diff -u php4/ext/gd/libgd/gd.c:1.24.2.6 php4/ext/gd/libgd/gd.c:1.24.2.7
--- php4/ext/gd/libgd/gd.c:1.24.2.6 Tue Mar 11 20:02:40 2003
+++ php4/ext/gd/libgd/gd.c Sun Mar 30 15:48:14 2003
@@ -1723,90 +1723,76 @@
}
}
-void
-gdImageFillToBorder (gdImagePtr im, int x, int y, int border, int color)
+void gdImageFillToBorder (gdImagePtr im, int x, int y, int border, int color)
{
- int lastBorder;
- /* Seek left */
- int leftLimit, rightLimit;
- int i;
- leftLimit = (-1);
- if (border < 0)
- {
- /* Refuse to fill to a non-solid border */
- return;
- }
- for (i = x; (i >= 0); i--)
- {
- if (gdImageGetPixel (im, i, y) == border)
- {
- break;
- }
- gdImageSetPixel (im, i, y, color);
- leftLimit = i;
- }
- if (leftLimit == (-1))
- {
- return;
- }
- /* Seek right */
- rightLimit = x;
- for (i = (x + 1); (i < im->sx); i++)
- {
- if (gdImageGetPixel (im, i, y) == border)
- {
- break;
- }
- gdImageSetPixel (im, i, y, color);
- rightLimit = i;
- }
- /* Look at lines above and below and start paints */
- /* Above */
- if (y > 0)
- {
- lastBorder = 1;
- for (i = leftLimit; (i <= rightLimit); i++)
- {
- int c;
- c = gdImageGetPixel (im, i, y - 1);
- if (lastBorder)
- {
- if ((c != border) && (c != color))
- {
- gdImageFillToBorder (im, i, y - 1,
- border, color);
- lastBorder = 0;
+ int lastBorder;
+ /* Seek left */
+ int leftLimit = -1, rightLimit;
+ int i;
+
+ if (border < 0) {
+ /* Refuse to fill to a non-solid border */
+ return;
+ }
+
+ if (x >= im->sx) {
+ x = im->sx - 1;
+ }
+ if (y >= im->sy) {
+ y = im->sy - 1;
+ }
+
+ for (i = x; i >= 0; i--) {
+ if (gdImageGetPixel(im, i, y) == border) {
+ break;
}
- }
- else if ((c == border) || (c == color))
- {
- lastBorder = 1;
- }
- }
- }
- /* Below */
- if (y < ((im->sy) - 1))
- {
- lastBorder = 1;
- for (i = leftLimit; (i <= rightLimit); i++)
- {
- int c;
- c = gdImageGetPixel (im, i, y + 1);
- if (lastBorder)
- {
- if ((c != border) && (c != color))
- {
- gdImageFillToBorder (im, i, y + 1,
- border, color);
- lastBorder = 0;
+ gdImageSetPixel(im, i, y, color);
+ leftLimit = i;
+ }
+ if (leftLimit == -1) {
+ return;
+ }
+ /* Seek right */
+ rightLimit = x;
+ for (i = (x + 1); i < im->sx; i++) {
+ if (gdImageGetPixel(im, i, y) == border) {
+ break;
+ }
+ gdImageSetPixel(im, i, y, color);
+ rightLimit = i;
+ }
+ /* Look at lines above and below and start paints */
+ /* Above */
+ if (y > 0) {
+ lastBorder = 1;
+ for (i = leftLimit; i <= rightLimit; i++) {
+ int c = gdImageGetPixel(im, i, y - 1);
+ if (lastBorder) {
+ if ((c != border) && (c != color)) {
+ gdImageFillToBorder(im, i, y - 1, border,
color);
+ lastBorder = 0;
+ }
+ } else if ((c == border) || (c == color)) {
+ lastBorder = 1;
+ }
+ }
+ }
+ /* Below */
+ if (y < ((im->sy) - 1)) {
+ lastBorder = 1;
+ for (i = leftLimit; i <= rightLimit; i++) {
+ int c = gdImageGetPixel(im, i, y + 1);
+
+ if (lastBorder) {
+ if ((c != border) && (c != color)) {
+ gdImageFillToBorder(im, i, y + 1, border,
color);
+ lastBorder = 0;
+ }
+ } else if ((c == border) || (c == color)) {
+ lastBorder = 1;
+ }
}
- }
- else if ((c == border) || (c == color))
- {
- lastBorder = 1;
- }
}
- }
}
void
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php