cvs: php-src /ext/simplexml simplexml.c

From: Date: Mon, 02 Jul 2007 11:53:08 +0000
Subject: cvs: php-src /ext/simplexml simplexml.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-45070@lists.php.net to get a copy of this message
dmitry Mon Jul 2 11:53:08 2007 UTC Modified files: /php-src/ext/simplexml simplexml.c Log: Allow unicode XML http://cvs.php.net/viewvc.cgi/php-src/ext/simplexml/simplexml.c?r1=1.237&r2=1.238&diff_format=u Index: php-src/ext/simplexml/simplexml.c diff -u php-src/ext/simplexml/simplexml.c:1.237 php-src/ext/simplexml/simplexml.c:1.238 --- php-src/ext/simplexml/simplexml.c:1.237 Mon Jul 2 11:36:28 2007 +++ php-src/ext/simplexml/simplexml.c Mon Jul 2 11:53:08 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: simplexml.c,v 1.237 2007/07/02 11:36:28 rrichards Exp $ */ +/* $Id: simplexml.c,v 1.238 2007/07/02 11:53:08 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2110,7 +2110,8 @@ SXE_METHOD(__construct) { php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC); - char *data, *ns = NULL; + zstr data; + char *ns = NULL; int data_len, ns_len = 0; xmlDocPtr docp; long options = 0; @@ -2127,20 +2128,19 @@ if (data_type == IS_UNICODE) { if (is_url) { - if (php_stream_path_encode(NULL, &data, &data_len, (UChar*)data, data_len, REPORT_ERRORS, NULL) == FAILURE) { + if (php_stream_path_encode(NULL, &data.s, &data_len, data.u, data_len, REPORT_ERRORS, NULL) == FAILURE) { zend_throw_exception(zend_exception_get_default(TSRMLS_C), "String could not be parsed as XML", 0 TSRMLS_CC); return; } } else { - zend_throw_exception(zend_exception_get_default(TSRMLS_C), "SimpleXMLElement can only parse a binary string", 0 TSRMLS_CC); - return; + data.s = php_libxml_unicode_to_string(data.u, data_len, &data_len TSRMLS_CC); } } - docp = is_url ? xmlReadFile(data, NULL, options) : xmlReadMemory(data, data_len, NULL, NULL, options); + docp = is_url ? xmlReadFile(data.s, NULL, options) : xmlReadMemory(data.s, data_len, NULL, NULL, options); - if (is_url && data_type == IS_UNICODE) { - efree(data); + if (data_type == IS_UNICODE) { + efree(data.s); } if (!docp) { @@ -2486,7 +2486,7 @@ { php_info_print_table_start(); php_info_print_table_header(2, "Simplexml support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.237 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.238 $"); php_info_print_table_row(2, "Schema support", #ifdef LIBXML_SCHEMAS_ENABLED "enabled");

« previous php.cvs (#45070) next »