iliaa           Fri Dec  8 00:46:01 2006 UTC

  Modified files:              
    /php-src/ext/curl   interface.c 
  Log:
  Allow POST of unicode data as utf8
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.99&r2=1.100&diff_format=u
Index: php-src/ext/curl/interface.c
diff -u php-src/ext/curl/interface.c:1.99 php-src/ext/curl/interface.c:1.100
--- php-src/ext/curl/interface.c:1.99   Thu Dec  7 01:06:54 2006
+++ php-src/ext/curl/interface.c        Fri Dec  8 00:46:01 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: interface.c,v 1.99 2006/12/07 01:06:54 iliaa Exp $ */
+/* $Id: interface.c,v 1.100 2006/12/08 00:46:01 iliaa Exp $ */
 
 #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
 
@@ -957,7 +957,7 @@
        error = call_user_function(EG(function_table), NULL, func, retval, 2, 
argv TSRMLS_CC);
        if (error == FAILURE) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not call the 
CURLOPT_PASSWDFUNCTION");
-       } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_(retval) == 
IS_UNICODE) {
+       } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_P(retval) == 
IS_UNICODE) {
                if (Z_TYPE_(retval) == IS_UNICODE) {
                        convert_to_string_ex(retval);
                }
@@ -1449,13 +1449,19 @@
                                        int ntype;
                                        int l;
                                        UErrorCode status = U_ZERO_ERROR;
+                                       uint data_len;
 
                                        SEPARATE_ZVAL(current);
-                                       convert_to_string_ex(current);
+
+                                       if (Z_TYPE_PP(current) == IS_UNICODE) {
+                                               
zend_unicode_to_string_ex(UG(utf8_conv), &postval, &data_len, 
Z_USTRVAL_PP(current), Z_USTRLEN_PP(current), &status);
+                                       } else {
+                                               convert_to_string_ex(current);
+                                               postval = Z_STRVAL_PP(current);
+                                               data_len = Z_STRLEN_PP(current);
+                                       }
 
                                        
zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, 
&num_key, 0, NULL);
-                               
-                                       postval = Z_STRVAL_PP(current);
 
                                        ntype = 
zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, 
&num_key, 0, NULL);
                                        if (type == -1) {
@@ -1499,7 +1505,7 @@
                                                                                
         CURLFORM_COPYNAME, key,
                                                                                
         CURLFORM_NAMELENGTH, l,
                                                                                
         CURLFORM_COPYCONTENTS, postval, 
-                                                                               
         CURLFORM_CONTENTSLENGTH, (long)Z_STRLEN_PP(current),
+                                                                               
         CURLFORM_CONTENTSLENGTH, (long)data_len,
                                                                                
         CURLFORM_END);
                                        }
                                        if (ntype == HASH_KEY_IS_UNICODE) {

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

Reply via email to