From: Derick Rethans Date: Fri, 3 Nov 2000 20:31:36 +0000 (+0000) Subject: - Fixing Mathieu's indentation problems X-Git-Tag: php-4.0.4RC3~334 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0d04945bfae584c26fff34e9d786e283634fdd8c;p=php - Fixing Mathieu's indentation problems # It does not build, undefined references to getmbi and skipheader --- diff --git a/ext/gd/gd.c b/ext/gd/gd.c index be1fa34204..5709ac560b 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -478,117 +478,119 @@ PHP_FUNCTION(imagetypes) RETURN_LONG(ret); } -static int _php_image_type ( char data[8] ) +static int _php_image_type (char data[8]) { /* Based on ext/standard/images.c */ - if (data == NULL) - return -1; - - if (!memcmp(data, php_sig_jpg, 3)) - return PHP_GDIMG_TYPE_JPG; - else if (!memcmp(data, php_sig_png, 3)) { - if (!memcmp(data, php_sig_png, 8)) - return PHP_GDIMG_TYPE_PNG; - } else if (!memcmp(data, php_sig_gif, 3)) - return PHP_GDIMG_TYPE_GIF; - else { - gdIOCtx *io_ctx; - io_ctx = gdNewDynamicCtx ( 8, data ); - if (io_ctx) { + if (data == NULL) + return -1; + + if (!memcmp(data, php_sig_jpg, 3)) + return PHP_GDIMG_TYPE_JPG; + else if (!memcmp(data, php_sig_png, 3)) { + if (!memcmp(data, php_sig_png, 8)) + return PHP_GDIMG_TYPE_PNG; + } + else if (!memcmp(data, php_sig_gif, 3)) + return PHP_GDIMG_TYPE_GIF; + else { + gdIOCtx *io_ctx; + io_ctx = gdNewDynamicCtx (8, data); + if (io_ctx) { if (getmbi(gdGetC, io_ctx) == 0 && skipheader(gdGetC, io_ctx) == 0 ) { - io_ctx->free(io_ctx); - return PHP_GDIMG_TYPE_WBM; - } else - io_ctx->free(io_ctx); - } - } + io_ctx->free(io_ctx); + return PHP_GDIMG_TYPE_WBM; + } else + io_ctx->free(io_ctx); + } + } return -1; } -gdImagePtr _php_image_create_from_string ( zval **Data, char *tn, gdImagePtr (*ioctx_func_p)() ) { - gdImagePtr im; - gdIOCtx *io_ctx; +gdImagePtr _php_image_create_from_string (zval **data, char *tn, gdImagePtr (*ioctx_func_p)()) +{ + gdImagePtr im; + gdIOCtx *io_ctx; - io_ctx = gdNewDynamicCtx ( (*Data)->value.str.len , - (*Data)->value.str.val ); + io_ctx = gdNewDynamicCtx ((*data)->value.str.len, + (*data)->value.str.val); - if(!io_ctx) { - return NULL; + if(!io_ctx) { + return NULL; } im = (*ioctx_func_p)(io_ctx); - if (!im) { + if (!im) { php_error(E_WARNING, "%s: Passed data is not in '%s' format", get_active_function_name(), tn); - return NULL; - } + return NULL; + } - return im; + return im; } +/* {{{ proto int imagecreatefromstring(string image) + Create a new image from the image stream in the string */ PHP_FUNCTION (imagecreatefromstring) { - zval **Data; - gdImagePtr im; - int imtype; - char sig[8]; + zval **data; + gdImagePtr im; + int imtype; + char sig[8]; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &Data) == FAILURE) + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) WRONG_PARAM_COUNT; - convert_to_string_ex( Data ); - memcpy(sig, (*Data)->value.str.val, 8); - - imtype = _php_image_type ( sig ); - - switch ( imtype ) { - case PHP_GDIMG_TYPE_JPG: { - #ifdef HAVE_GD_JPG - im = _php_image_create_from_string ( Data, "JPEG", gdImageCreateFromJpegCtx); - #else - php_error(E_WARNING, "No JPEG support in this PHP build"); - #endif - break; - } - - case PHP_GDIMG_TYPE_PNG: { - #ifdef HAVE_GD_PNG - im = _php_image_create_from_string ( Data, "PNG", gdImageCreateFromPngCtx); - #else - php_error(E_WARNING, "No PNG support in this PHP build"); - #endif - break; - } - - case PHP_GDIMG_TYPE_GIF: { - #ifdef HAVE_GD_GIF - im = _php_image_create_from_string ( Data, "GIF", gdImageCreateFromGifCtx); - #else - php_error(E_WARNING, "No GIF support in this PHP build"); - #endif - break; - } - case PHP_GDIMG_TYPE_WBM: { - #ifdef HAVE_GD_WBMP - im = _php_image_create_from_string ( Data, "WBMP",gdImageCreateFromWBMPCtx ); - #else - php_error(E_WARNING, "No WBMP support in this PHP build"); - #endif - break; - } - - default: - php_error(E_WARNING, "Data is not in a recognized format."); - RETURN_FALSE; + convert_to_string_ex (data); + memcpy(sig, (*data)->value.str.val, 8); - } - if (!im) { - php_error(E_WARNING, "Couldn't create GD Image Stream out of Data"); + imtype = _php_image_type (sig); + + switch (imtype) { + case PHP_GDIMG_TYPE_JPG: +#ifdef HAVE_GD_JPG + im = _php_image_create_from_string (data, "JPEG", gdImageCreateFromJpegCtx); +#else + php_error(E_WARNING, "No JPEG support in this PHP build"); +#endif + break; + + case PHP_GDIMG_TYPE_PNG: +#ifdef HAVE_GD_PNG + im = _php_image_create_from_string (data, "PNG", gdImageCreateFromPngCtx); +#else + php_error(E_WARNING, "No PNG support in this PHP build"); +#endif + break; + + case PHP_GDIMG_TYPE_GIF: +#ifdef HAVE_GD_GIF + im = _php_image_create_from_string (data, "GIF", gdImageCreateFromGifCtx); +#else + php_error(E_WARNING, "No GIF support in this PHP build"); +#endif + break; + + case PHP_GDIMG_TYPE_WBM: +#ifdef HAVE_GD_WBMP + im = _php_image_create_from_string (data, "WBMP",gdImageCreateFromWBMPCtx ); +#else + php_error(E_WARNING, "No WBMP support in this PHP build"); +#endif + break; + + default: + php_error(E_WARNING, "Data is not in a recognized format."); + RETURN_FALSE; + + } + if (!im) { + php_error(E_WARNING, "Couldn't create GD Image Stream out of Data"); RETURN_FALSE; - } + } - ZEND_REGISTER_RESOURCE(return_value, im, GDG (le_gd)); + ZEND_REGISTER_RESOURCE(return_value, im, GDG (le_gd)); } +/* }}} */ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, gdImagePtr (*func_p)(), gdImagePtr (*ioctx_func_p)()) { zval **file;