andrei          Thu Oct 19 18:20:13 2006 UTC

  Modified files:              
    /php-src/ext/standard       image.c 
  Log:
  Unicode support for remaining image.c functions.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/image.c?r1=1.126&r2=1.127&diff_format=u
Index: php-src/ext/standard/image.c
diff -u php-src/ext/standard/image.c:1.126 php-src/ext/standard/image.c:1.127
--- php-src/ext/standard/image.c:1.126  Sun Oct  8 13:34:23 2006
+++ php-src/ext/standard/image.c        Thu Oct 19 18:20:13 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: image.c,v 1.126 2006/10/08 13:34:23 bjori Exp $ */
+/* $Id: image.c,v 1.127 2006/10/19 18:20:13 andrei Exp $ */
 
 #include "php.h"
 #include <stdio.h>
@@ -458,7 +458,7 @@
 
        if (zend_ascii_hash_find(Z_ARRVAL_P(info), markername, 
strlen(markername)+1, (void **) &tmp) == FAILURE) {
                /* XXX we onyl catch the 1st tag of it's kind! */
-               add_ascii_assoc_stringl(info, markername, buffer, length, 1);
+               add_ascii_assoc_rt_stringl(info, markername, buffer, length, 1);
        }
 
        efree(buffer);
@@ -1115,25 +1115,23 @@
 }
 /* }}} */
 
-/* {{{ proto string image_type_to_mime_type(int imagetype)
+/* {{{ proto string image_type_to_mime_type(int imagetype) U
    Get Mime-Type for image-type returned by getimagesize, exif_read_data, 
exif_thumbnail, exif_imagetype */
 PHP_FUNCTION(image_type_to_mime_type)
 {
-       zval **p_image_type;
-       int arg_c = ZEND_NUM_ARGS();
+       long image_type;
        char *temp;
 
-       if ((arg_c!=1) || zend_get_parameters_ex(arg_c, &p_image_type) == 
FAILURE) {
-               RETVAL_FALSE;
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &image_type) 
== FAILURE) {
+               return;
        }
-       convert_to_long_ex(p_image_type);
-       temp = (char*)php_image_type_to_mime_type(Z_LVAL_PP(p_image_type));
+
+       temp = (char*)php_image_type_to_mime_type(image_type);
        ZVAL_ASCII_STRING(return_value, temp, 1);
 }
 /* }}} */
 
-/* {{{ proto string image_type_to_extension(int imagetype [, bool include_dot])
+/* {{{ proto string image_type_to_extension(int imagetype [, bool 
include_dot]) U
    Get file extension for image-type returned by getimagesize, exif_read_data, 
exif_thumbnail, exif_imagetype */
 PHP_FUNCTION(image_type_to_extension)
 {
@@ -1284,49 +1282,34 @@
 }
 /* }}} */
 
-/* {{{ proto array getimagesize(string imagefile [, array info])
+/* {{{ proto array getimagesize(string imagefile [, array info]) U
    Get the size of an image as 4-element array */
 PHP_FUNCTION(getimagesize)
 {
-       zval **arg1, **info = NULL;
+       zval **pp_file, *info = NULL;
        int itype = 0;
        char *temp;
+       char *filename;
+       int filename_len;
        struct gfxinfo *result = NULL;
        php_stream * stream = NULL;
 
-       switch(ZEND_NUM_ARGS()) {
-
-       case 1:
-               if (zend_get_parameters_ex(1, &arg1) == FAILURE) {
-                       RETVAL_FALSE;
-                       WRONG_PARAM_COUNT;
-               }
-               convert_to_string_ex(arg1);
-               break;
-
-       case 2:
-               if (zend_get_parameters_ex(2, &arg1, &info) == FAILURE) {
-                       RETVAL_FALSE;
-                       WRONG_PARAM_COUNT;
-               }
-               zval_dtor(*info);
-
-               array_init(*info);
-
-               convert_to_string_ex(arg1);
-               break;
-
-       default:
-               RETVAL_FALSE;
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z|z", &pp_file, 
&info) == FAILURE ||
+               php_stream_path_param_encode(pp_file, &filename, &filename_len, 
REPORT_ERRORS, FG(default_context)) == FAILURE) {
+               return;
        }
 
-       stream = php_stream_open_wrapper(Z_STRVAL_PP(arg1), "rb", 
STREAM_MUST_SEEK|REPORT_ERRORS|IGNORE_PATH, NULL);
+       stream = php_stream_open_wrapper(filename, "rb", 
STREAM_MUST_SEEK|REPORT_ERRORS|IGNORE_PATH, NULL);
 
        if (!stream) {
                RETURN_FALSE;
        }
 
+       if (info) {
+               zval_dtor(info);
+               array_init(info);
+       }
+
        itype = php_getimagetype(stream, NULL TSRMLS_CC);
        switch( itype) {
                case IMAGE_FILETYPE_GIF:
@@ -1334,7 +1317,7 @@
                        break;
                case IMAGE_FILETYPE_JPEG:
                        if (info) {
-                               result = php_handle_jpeg(stream, *info 
TSRMLS_CC);
+                               result = php_handle_jpeg(stream, info 
TSRMLS_CC);
                        } else {
                                result = php_handle_jpeg(stream, NULL 
TSRMLS_CC);
                        }
@@ -1393,10 +1376,7 @@
                add_index_long(return_value, 1, result->height);
                add_index_long(return_value, 2, itype);
                spprintf(&temp, 0, "width=\"%d\" height=\"%d\"", result->width, 
result->height);
-               add_index_ascii_string(return_value, 3, temp, 0);
-               if (UG(unicode)) {
-                       efree(temp);
-               }
+               add_index_ascii_string(return_value, 3, temp, ZSTR_AUTOFREE);
 
                if (result->bits != 0) {
                        add_ascii_assoc_long(return_value, "bits", 
result->bits);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to