[PHP-CVS] cvs: php-src(PHP_5_2) /ext/xml xml.c

2008-01-30 Thread Rasmus Lerdorf
rasmus  Wed Jan 30 08:50:02 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/xmlxml.c 
  Log:
  Copy-paste typo
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xml/xml.c?r1=1.157.2.4.2.7&r2=1.157.2.4.2.8&diff_format=u
Index: php-src/ext/xml/xml.c
diff -u php-src/ext/xml/xml.c:1.157.2.4.2.7 php-src/ext/xml/xml.c:1.157.2.4.2.8
--- php-src/ext/xml/xml.c:1.157.2.4.2.7 Tue Jan 29 23:21:20 2008
+++ php-src/ext/xml/xml.c   Wed Jan 30 08:50:02 2008
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: xml.c,v 1.157.2.4.2.7 2008/01/29 23:21:20 rasmus Exp $ */
+/* $Id: xml.c,v 1.157.2.4.2.8 2008/01/30 08:50:02 rasmus Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -595,7 +595,7 @@
s += 3;
pos -= 3;
} else if (c >= 0xc0) { /* two bytes encoded, 11 bits */
-   if(pos-3 >= 0) {
+   if(pos-2 >= 0) {
c = ((s[0]&63)<<6) | (s[1]&63);
} else {
c = '?';

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/xml xml.c /ext/xml/tests bug43957.phpt

2008-01-29 Thread Rasmus Lerdorf
rasmus  Tue Jan 29 23:21:20 2008 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/xml/tests  bug43957.phpt 

  Modified files:  
/php-src/ext/xmlxml.c 
  Log:
  Fixed bug #43957 (utf8_decode() bogus conversion of partial multibyte UTF8 
char)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xml/xml.c?r1=1.157.2.4.2.6&r2=1.157.2.4.2.7&diff_format=u
Index: php-src/ext/xml/xml.c
diff -u php-src/ext/xml/xml.c:1.157.2.4.2.6 php-src/ext/xml/xml.c:1.157.2.4.2.7
--- php-src/ext/xml/xml.c:1.157.2.4.2.6 Mon Dec 31 07:20:14 2007
+++ php-src/ext/xml/xml.c   Tue Jan 29 23:21:20 2008
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: xml.c,v 1.157.2.4.2.6 2007/12/31 07:20:14 sebastian Exp $ */
+/* $Id: xml.c,v 1.157.2.4.2.7 2008/01/29 23:21:20 rasmus Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -579,15 +579,27 @@
while (pos > 0) {
c = (unsigned char)(*s);
if (c >= 0xf0) { /* four bytes encoded, 21 bits */
-   c = ((s[0]&7)<<18) | ((s[1]&63)<<12) | ((s[2]&63)<<6) | 
(s[3]&63);
+   if(pos-4 >= 0) {
+   c = ((s[0]&7)<<18) | ((s[1]&63)<<12) | 
((s[2]&63)<<6) | (s[3]&63);
+   } else {
+   c = '?';
+   }
s += 4;
pos -= 4;
} else if (c >= 0xe0) { /* three bytes encoded, 16 bits */
-   c = ((s[0]&63)<<12) | ((s[1]&63)<<6) | (s[2]&63);
+   if(pos-3 >= 0) {
+   c = ((s[0]&63)<<12) | ((s[1]&63)<<6) | 
(s[2]&63);
+   } else {
+   c = '?';
+   }
s += 3;
pos -= 3;
} else if (c >= 0xc0) { /* two bytes encoded, 11 bits */
-   c = ((s[0]&63)<<6) | (s[1]&63);
+   if(pos-3 >= 0) {
+   c = ((s[0]&63)<<6) | (s[1]&63);
+   } else {
+   c = '?';
+   }
s += 2;
pos -= 2;
} else {

http://cvs.php.net/viewvc.cgi/php-src/ext/xml/tests/bug43957.phpt?view=markup&rev=1.1
Index: php-src/ext/xml/tests/bug43957.phpt
+++ php-src/ext/xml/tests/bug43957.phpt

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/xml xml.c

2006-12-26 Thread Antony Dovgal
tony2001Tue Dec 26 12:29:42 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/xmlxml.c 
  Log:
  MFH
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xml/xml.c?r1=1.157.2.4.2.3&r2=1.157.2.4.2.4&diff_format=u
Index: php-src/ext/xml/xml.c
diff -u php-src/ext/xml/xml.c:1.157.2.4.2.3 php-src/ext/xml/xml.c:1.157.2.4.2.4
--- php-src/ext/xml/xml.c:1.157.2.4.2.3 Tue Aug 15 22:47:10 2006
+++ php-src/ext/xml/xml.c   Tue Dec 26 12:29:42 2006
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: xml.c,v 1.157.2.4.2.3 2006/08/15 22:47:10 rrichards Exp $ */
+/* $Id: xml.c,v 1.157.2.4.2.4 2006/12/26 12:29:42 tony2001 Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -1097,7 +1097,7 @@
ns_param = ":";
}
 
-   parser = ecalloc(sizeof(xml_parser), 1);
+   parser = ecalloc(1, sizeof(xml_parser));
parser->parser = XML_ParserCreate_MM((auto_detect ? NULL : encoding),
  &php_xml_mem_hdlrs, ns_param);
 

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/xml xml.c /ext/xml/tests xml011.phpt

2006-08-15 Thread Rob Richards
rrichards   Tue Aug 15 22:47:11 2006 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/xml/tests  xml011.phpt 

  Modified files:  
/php-src/ext/xmlxml.c 
  Log:
  fix bug #38454 (warning upon disabling handler via xml_set_element_handler)
  fix bug #38427 (unicode causes xml_parser to misbehave)
  add test
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xml/xml.c?r1=1.157.2.4.2.2&r2=1.157.2.4.2.3&diff_format=u
Index: php-src/ext/xml/xml.c
diff -u php-src/ext/xml/xml.c:1.157.2.4.2.2 php-src/ext/xml/xml.c:1.157.2.4.2.3
--- php-src/ext/xml/xml.c:1.157.2.4.2.2 Wed Aug  2 15:21:54 2006
+++ php-src/ext/xml/xml.c   Tue Aug 15 22:47:10 2006
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: xml.c,v 1.157.2.4.2.2 2006/08/02 15:21:54 iliaa Exp $ */
+/* $Id: xml.c,v 1.157.2.4.2.3 2006/08/15 22:47:10 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -380,7 +380,12 @@
 
/* IS_ARRAY might indicate that we're using array($obj, 'method') 
syntax */
if (Z_TYPE_PP(data) != IS_ARRAY) {
+
convert_to_string_ex(data);
+   if (Z_STRLEN_PP(data) == 0) {
+   *handler = NULL;
+   return;
+   }
}
 
zval_add_ref(data);
@@ -857,6 +862,25 @@

} else {
zval *tag;
+   zval **curtag, **mytype, **myval;
+   HashPosition hpos=NULL;
+
+   
zend_hash_internal_pointer_end_ex(Z_ARRVAL_P(parser->data), &hpos);
+
+   if (hpos && 
(zend_hash_get_current_data_ex(Z_ARRVAL_P(parser->data), (void **) &curtag, 
&hpos) == SUCCESS)) {
+   if 
(zend_hash_find(Z_ARRVAL_PP(curtag),"type",sizeof("type"),(void **) &mytype) == 
SUCCESS) {
+   if 
(!strcmp(Z_STRVAL_PP(mytype), "cdata")) {
+   if 
(zend_hash_find(Z_ARRVAL_PP(curtag),"value",sizeof("value"),(void **) &myval) 
== SUCCESS) {
+   int 
newlen = Z_STRLEN_PP(myval) + decoded_len;
+   
Z_STRVAL_PP(myval) = erealloc(Z_STRVAL_PP(myval),newlen+1);
+   
strcpy(Z_STRVAL_PP(myval) + Z_STRLEN_PP(myval),decoded_value);
+   
Z_STRLEN_PP(myval) += decoded_len;
+   
efree(decoded_value);
+   return;
+   }
+   }
+   }
+   }
 
MAKE_STD_ZVAL(tag);


http://cvs.php.net/viewvc.cgi/php-src/ext/xml/tests/xml011.phpt?view=markup&rev=1.1
Index: php-src/ext/xml/tests/xml011.phpt
+++ php-src/ext/xml/tests/xml011.phpt
--TEST--
XML Parser test: concat character data and set empty handlers
--SKIPIF--

--FILE--
";
}
function end_elem()
{
   echo "";
}

$xml = 'start This & that';

$parser = xml_parser_create();
xml_parse_into_struct($parser, $xml, $vals, $index);
print_r($vals);
xml_parser_free($parser);

echo "\nChange to empty end handler\n";
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_set_element_handler($parser,'start_elem','end_elem');
xml_set_element_handler($parser,'start_elem',NULL);
xml_parse($parser, $xml, TRUE);

xml_parser_free($parser);
echo "\nDone\n";
?>
--EXPECT--
Array
(
[0] => Array
(
[tag] => TEXT
[type] => open
[level] => 1
[value] => start
)

[1] => Array
(
[tag] => B
[type] => complete
[level] => 2
)

[2] => Array
(
[tag] => TEXT
[value] =>  This & that
[type] => cdata
[level] => 1
)

[3] => Array
(
[tag] => TEXT
[type] => close
[level] => 1
)

)

Change to empty end handler

Done

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