]> granicus.if.org Git - php/commitdiff
Made imagecreatefromxpm() work once again.
authorIlia Alshanetsky <iliaa@php.net>
Wed, 4 Dec 2002 20:58:04 +0000 (20:58 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Wed, 4 Dec 2002 20:58:04 +0000 (20:58 +0000)
ext/gd/gd.c
ext/gd/libgd/gd.h

index fcde3dbaf771482c0509b65dee6335b399a77f09..98d15579e6dd2d7dc0cddc7f923e898ab235fe4c 100644 (file)
@@ -1418,10 +1418,16 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
        }
        
        if (!im && fp)  {
-               if (image_type == PHP_GDIMG_TYPE_GD2PART) {
-                       im = (*func_p)(fp, Z_LVAL_PP(srcx), Z_LVAL_PP(srcy), Z_LVAL_PP(width), Z_LVAL_PP(height));
-               } else {
-                       im = (*func_p)(fp);
+               switch (image_type) {
+                       case PHP_GDIMG_TYPE_GD2PART:
+                               im = (*func_p)(fp, Z_LVAL_PP(srcx), Z_LVAL_PP(srcy), Z_LVAL_PP(width), Z_LVAL_PP(height));
+                               break;
+                       case PHP_GDIMG_TYPE_XPM:
+                               im = gdImageCreateFromXpm(fn);
+                               break;
+                       default:
+                               im = (*func_p)(fp);
+                               break;
                }
 
                fflush(fp);
@@ -1481,22 +1487,15 @@ PHP_FUNCTION(imagecreatefromxbm)
 /* }}} */
 #endif /* HAVE_GD_XBM */
 
+#ifdef HAVE_GD_XPM
 /* {{{ proto int imagecreatefromxpm(string filename)
    Create a new image from XPM file or URL */
 PHP_FUNCTION(imagecreatefromxpm)
 {
-       /*
-#ifdef HAVE_GD_XPM
        _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XPM, "XPM", gdImageCreateFromXpm, NULL);
-#else
-       */
-       php_error_docref(NULL TSRMLS_CC, E_WARNING, "No XPM support in this PHP build");
-       RETURN_FALSE;
-       /*
-#endif
-       */
 }
 /* }}} */
+#endif
 
 #ifdef HAVE_GD_WBMP
 /* {{{ proto int imagecreatefromwbmp(string filename)
index 5031509c7135417ff3facf4064e1a8223d53bab1..a08df2892db7a83f3a13172eb7e0677579927862 100644 (file)
@@ -228,6 +228,8 @@ gdImagePtr gdImageCreateFromGd2PartCtx(gdIOCtxPtr in, int srcx, int srcy, int w,
 
 gdImagePtr gdImageCreateFromXbm(FILE *fd);
 
+gdImagePtr gdImageCreateFromXpm (char *filename);
+
 void gdImageDestroy(gdImagePtr im);
 
 /* Replaces or blends with the background depending on the