georg           Sun Oct  1 21:01:31 2006 UTC

  Modified files:              
    /php-src/ext/mysqli mysqli.c mysqli_api.c mysqli_nonapi.c 
    /php-src/ext/mysqli/tests   068.phpt 
  Log:
  unicode fixes
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.99&r2=1.100&diff_format=u
Index: php-src/ext/mysqli/mysqli.c
diff -u php-src/ext/mysqli/mysqli.c:1.99 php-src/ext/mysqli/mysqli.c:1.100
--- php-src/ext/mysqli/mysqli.c:1.99    Wed Sep 27 15:25:52 2006
+++ php-src/ext/mysqli/mysqli.c Sun Oct  1 21:01:31 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli.c,v 1.99 2006/09/27 15:25:52 georg Exp $ 
+  $Id: mysqli.c,v 1.100 2006/10/01 21:01:31 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -901,7 +901,6 @@
                                        int ulen;
 
                                        zend_string_to_unicode(UG(utf8_conv), 
&ustr, &ulen, fields[i].name, strlen(fields[i].name) TSRMLS_CC);
-                                       /* maybe a bug in add_u_assoc_zval_ex: 
string is truncated when specifying ulen only */
                                        add_u_assoc_zval_ex(return_value, 
IS_UNICODE, ZSTR(ustr), ulen + 1, res);
                                        efree(ustr);
                                } else {
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.133&r2=1.134&diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.133 
php-src/ext/mysqli/mysqli_api.c:1.134
--- php-src/ext/mysqli/mysqli_api.c:1.133       Fri Sep 29 08:35:19 2006
+++ php-src/ext/mysqli/mysqli_api.c     Sun Oct  1 21:01:31 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_api.c,v 1.133 2006/09/29 08:35:19 georg Exp $ 
+  $Id: mysqli_api.c,v 1.134 2006/10/01 21:01:31 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -444,7 +444,7 @@
 
        csname = (char *)mysql_character_set_name(mysql->mysql);
  
-       ZVAL_UTF8_STRINGL(return_value, csname, strlen(csname), ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING(csname, ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -582,7 +582,7 @@
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
 
        strerr = (char *)mysql_error(mysql->mysql);
-       ZVAL_UTF8_STRINGL(return_value, strerr, strlen(strerr), ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING(strerr, ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -709,15 +709,10 @@
                                                                        uval = 
uval / 10;                                                       
                                                                } while (--j > 
0);
                                                                tmp[10]= '\0';
-                                                               /* unsigned int 
> INT_MAX is 10 digis - ALWAYS */
+                                                               /* unsigned int 
> INT_MAX is 10 digits - ALWAYS */
+                                                               
ZVAL_UTF8_STRINGL(stmt->result.vars[i], tmp, 10, 0);
                                                                if 
(UG(unicode)) {
-                                                                       UChar 
*ubuf = NULL;
-                                                                       int 
ulen;
-                                                                       
zend_string_to_unicode(UG(ascii_conv), &ubuf, &ulen, tmp, strlen(tmp) 
TSRMLS_CC);
-                                                                       
ZVAL_UNICODEL(stmt->result.vars[i], ubuf, ulen, 0);
                                                                        
efree(tmp);
-                                                               } else {
-                                                                       
ZVAL_STRINGL(stmt->result.vars[i], tmp, 10, 0);
                                                                }
                                                                break;
                                                        }
@@ -749,14 +744,7 @@
                                                                 * use 
MYSQLI_LL_SPEC.
                                                                 */
                                                                sprintf((char 
*)&tmp, (stmt->stmt->fields[i].flags & UNSIGNED_FLAG)? MYSQLI_LLU_SPEC : 
MYSQLI_LL_SPEC, llval);
-                                                               if 
(UG(unicode)) {
-                                                                       UChar 
*ubuf = NULL;
-                                                                       int 
ulen;
-                                                                       
zend_string_to_unicode(UG(utf8_conv), &ubuf, &ulen, tmp, strlen(tmp) TSRMLS_CC);
-                                                                       
ZVAL_UNICODEL(stmt->result.vars[i], ubuf, ulen, 0);
-                                                               } else {        
                                        
-                                                                       
ZVAL_STRING(stmt->result.vars[i], tmp, 1);
-                                                               }
+                                                               
ZVAL_UTF8_STRING(stmt->result.vars[i], tmp, ZSTR_DUPLICATE);
                                                        } else {
                                                                
ZVAL_LONG(stmt->result.vars[i], llval);
                                                        }
@@ -768,15 +756,7 @@
                                                }
 #endif
                                                else {
-                                                       if (UG(unicode)) {
-                                                               UChar *ubuf = 
NULL;
-                                                               int ulen;
-                                                               
zend_string_to_unicode(UG(utf8_conv), &ubuf, &ulen, stmt->result.buf[i].val,
-                                                                               
                                stmt->result.buf[i].buflen TSRMLS_CC);
-                                                               
ZVAL_UNICODEL(stmt->result.vars[i], ubuf, ulen, 0);
-                                                       } else {
-                                                               
ZVAL_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val, 
stmt->result.buf[i].buflen, 1);
-                                                       }
+                                                       
ZVAL_UTF8_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val, 
stmt->result.buf[i].buflen, ZSTR_DUPLICATE);
 
                                                } 
                                                break;
@@ -815,32 +795,12 @@
 
 static void php_add_field_properties(zval *value, MYSQL_FIELD *field TSRMLS_DC)
 {
-       if (UG(unicode)) {
-               UChar *ustr;
-               int ulen;
+       add_property_utf8_string(value, "name",(field->name ? field->name : 
""), ZSTR_DUPLICATE);
+       add_property_utf8_string(value, "orgname",(field->org_name ? 
field->org_name : ""), ZSTR_DUPLICATE);
+       add_property_utf8_string(value, "table",(field->table ? field->table : 
""), ZSTR_DUPLICATE);
+       add_property_utf8_string(value, "orgtable",(field->org_table ? 
field->org_table : ""), ZSTR_DUPLICATE);
+       add_property_utf8_string(value, "def",(field->def ? field->def : ""), 
ZSTR_DUPLICATE);
 
-               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, 
(field->name) ? field->name : "", 
-                                                               (field->name) ? 
strlen(field->name) : 0 TSRMLS_CC);
-               add_property_unicodel(value, "name", ustr, ulen, 0);
-               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, 
(field->org_name) ? field->org_name : "", 
-                                                               
(field->org_name) ? strlen(field->org_name) : 0 TSRMLS_CC);
-               add_property_unicodel(value, "orgname", ustr, ulen, 0);
-               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, 
(field->table) ? field->table : "", 
-                                                               (field->table) 
? strlen(field->table) : 0 TSRMLS_CC);
-               add_property_unicodel(value, "table", ustr, ulen, 0);
-               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, 
(field->org_table) ? field->org_table : "", 
-                                                               
(field->org_table) ? strlen(field->org_table) : 0 TSRMLS_CC);
-               add_property_unicodel(value, "orgtable", ustr, ulen, 0);
-               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, 
(field->def) ? field->def : "", 
-                                                               (field->def) ? 
strlen(field->def) : 0 TSRMLS_CC);
-               add_property_unicodel(value, "def", ustr, ulen, 0);
-       } else {
-               add_property_string(value, "name",(field->name ? field->name : 
""), 1);
-               add_property_string(value, "orgname",(field->org_name ? 
field->org_name : ""), 1);
-               add_property_string(value, "table",(field->table ? field->table 
: ""), 1);
-               add_property_string(value, "orgtable",(field->org_table ? 
field->org_table : ""), 1);
-               add_property_string(value, "def",(field->def ? field->def : 
""), 1);
-       }
        add_property_long(value, "max_length", field->max_length);
        add_property_long(value, "length", field->length);
        add_property_long(value, "charsetnr", field->charsetnr);
@@ -1045,7 +1005,9 @@
    Get MySQL client info */
 PHP_FUNCTION(mysqli_get_client_info)
 {
-       RETURN_STRING((char *)mysql_get_client_info(), 1);
+       char *info = (char *)mysql_get_client_info();
+
+       RETURN_UTF8_STRING(info, ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -1069,7 +1031,7 @@
        }
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
 
-       ZVAL_UTF8_STRING(return_value, mysql->mysql->host_info, ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING(mysql->mysql->host_info, ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -1101,7 +1063,7 @@
        }
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
 
-       ZVAL_UTF8_STRING(return_value, (char 
*)mysql_get_server_info(mysql->mysql), ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING((char *)mysql_get_server_info(mysql->mysql), 
ZSTR_DUPLICATE);
 }
 
 /* }}} */
@@ -1134,7 +1096,7 @@
        }
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
 
-       ZVAL_UTF8_STRING(return_value, mysql->mysql->info, ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING(mysql->mysql->info, ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -1554,7 +1516,7 @@
        newstr_len = mysql_real_escape_string(mysql->mysql, newstr, escapestr, 
escapestr_len);
        newstr = erealloc(newstr, newstr_len + 1);
 
-       ZVAL_UTF8_STRING(return_value, newstr, 0);      
+       RETURN_UTF8_STRING(newstr, 0);  
 }
 /* }}} */
 
@@ -1774,7 +1736,7 @@
 }
 /* }}} */
 
-/* {{{ proto string mysqli_select_db(object link, string dbname) U
+/* {{{ proto bool mysqli_select_db(object link, string dbname) U
    Select a MySQL database */
 PHP_FUNCTION(mysqli_select_db) 
 {
@@ -1791,7 +1753,7 @@
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
        
        if (!mysql_select_db(mysql->mysql, dbname)) {
-               RETVAL_TRUE;
+               RETURN_TRUE;
        } else {
                MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
                RETURN_FALSE;
@@ -1810,7 +1772,7 @@
                return;
        }
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
-       ZVAL_UTF8_STRING(return_value, (char *)mysql_sqlstate(mysql->mysql), 
ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING((char *)mysql_sqlstate(mysql->mysql), 
ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -1851,7 +1813,7 @@
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", 
MYSQLI_STATUS_VALID);
 
        if ((stat = (char *)mysql_stat(mysql->mysql))) {
-               ZVAL_UTF8_STRING(return_value, stat, ZSTR_DUPLICATE);
+               RETURN_UTF8_STRING(stat, ZSTR_DUPLICATE);
        } else {
                RETURN_FALSE;
        }
@@ -1935,7 +1897,7 @@
        }
        MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", 
MYSQLI_STATUS_INITIALIZED);
        
-       ZVAL_UTF8_STRING(return_value, (char *)mysql_stmt_error(stmt->stmt), 
ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING((char *)mysql_stmt_error(stmt->stmt), 
ZSTR_DUPLICATE);
 }
 /* }}} */
 
@@ -2068,7 +2030,7 @@
        }
        MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", 
MYSQLI_STATUS_VALID);
        
-       ZVAL_UTF8_STRING(return_value, (char *)mysql_stmt_sqlstate(stmt->stmt), 
ZSTR_DUPLICATE);
+       RETURN_UTF8_STRING((char *)mysql_stmt_sqlstate(stmt->stmt), 
ZSTR_DUPLICATE);
 }
 /* }}} */
 
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.63&r2=1.64&diff_format=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.63 
php-src/ext/mysqli/mysqli_nonapi.c:1.64
--- php-src/ext/mysqli/mysqli_nonapi.c:1.63     Wed Sep 27 15:25:52 2006
+++ php-src/ext/mysqli/mysqli_nonapi.c  Sun Oct  1 21:01:31 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_nonapi.c,v 1.63 2006/09/27 15:25:52 georg Exp $ 
+  $Id: mysqli_nonapi.c,v 1.64 2006/10/01 21:01:31 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -52,6 +52,17 @@
                return;
        }
 
+       if (!passwd) {
+               passwd = MyG(default_pw);
+               if (!username){
+                       username = MyG(default_user);
+                       if (!hostname) {
+                               hostname = MyG(default_host);
+                       }
+               }
+       }
+
+
        mysql = (MY_MYSQL *) ecalloc(1, sizeof(MY_MYSQL));
 
        if (!(mysql->mysql = mysql_init(NULL))) {
@@ -121,7 +132,7 @@
 PHP_FUNCTION(mysqli_connect_error) 
 {
        if (MyG(error_msg)) {
-               ZVAL_UTF8_STRING(return_value, (char *)MyG(error_msg), 
ZSTR_DUPLICATE);
+               RETURN_UTF8_STRING((char *)MyG(error_msg), ZSTR_DUPLICATE);
        } else {
                RETURN_NULL();
        }
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/068.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/mysqli/tests/068.phpt
diff -u php-src/ext/mysqli/tests/068.phpt:1.1 
php-src/ext/mysqli/tests/068.phpt:1.2
--- php-src/ext/mysqli/tests/068.phpt:1.1       Tue Jul 11 07:03:31 2006
+++ php-src/ext/mysqli/tests/068.phpt   Sun Oct  1 21:01:31 2006
@@ -11,3 +11,5 @@
 ?>
 --EXPECT--
 string
+--UEXPECT--
+unicode

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

Reply via email to