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

Reply via email to