pajoye Mon May 14 09:22:44 2007 UTC Modified files: /php-src/ext/xmlwriter php_xmlwriter.c /php-src/ext/xmlwriter/tests bug41287.phpt bug41326.phpt Log: - [EMAIL PROTECTED], better fix. It restores BC and allows both canonical and short form: - when $content is given, the closing tag will be generated (even for empty string) - when $content is ignored or NULL is given, the short form will be used http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/php_xmlwriter.c?r1=1.47&r2=1.48&diff_format=u Index: php-src/ext/xmlwriter/php_xmlwriter.c diff -u php-src/ext/xmlwriter/php_xmlwriter.c:1.47 php-src/ext/xmlwriter/php_xmlwriter.c:1.48 --- php-src/ext/xmlwriter/php_xmlwriter.c:1.47 Tue May 8 21:40:24 2007 +++ php-src/ext/xmlwriter/php_xmlwriter.c Mon May 14 09:22:44 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_xmlwriter.c,v 1.47 2007/05/08 21:40:24 pajoye Exp $ */ +/* $Id: php_xmlwriter.c,v 1.48 2007/05/14 09:22:44 pajoye Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -762,7 +762,7 @@ } /* }}} */ -/* {{{ proto bool xmlwriter_write_element(resource xmlwriter, string name, string content) U +/* {{{ proto bool xmlwriter_write_element(resource xmlwriter, string name[, string content]) U Write full element tag - returns FALSE on error */ static PHP_FUNCTION(xmlwriter_write_element) { @@ -775,7 +775,7 @@ zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&|s&", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&|s!&", &name, &name_len, UG(utf8_conv), &content, &content_len, UG(utf8_conv)) == FAILURE) { return; } @@ -783,7 +783,7 @@ } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs&|s&", &pind, + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs&|s!&", &pind, &name, &name_len, UG(utf8_conv), &content, &content_len, UG(utf8_conv)) == FAILURE) { return; } @@ -795,7 +795,7 @@ ptr = intern->ptr; if (ptr) { - if (!content || content_len < 1) { + if (!content) { retval = xmlTextWriterStartElement(ptr, (xmlChar *)name); if (retval == -1) { RETURN_FALSE; @@ -816,21 +816,21 @@ } /* }}} */ -/* {{{ proto bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri, string content) U +/* {{{ proto bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri[, string content]) U Write full namesapced element tag - returns FALSE on error */ static PHP_FUNCTION(xmlwriter_write_element_ns) { zval *pind; xmlwriter_object *intern; xmlTextWriterPtr ptr; - char *name, *prefix, *uri, *content; + char *name, *prefix, *uri, *content = NULL; int name_len, prefix_len, uri_len, content_len, retval; #ifdef ZEND_ENGINE_2 zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!&s&s!&s&", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!&s&s!&|s!&", &prefix, &prefix_len, UG(utf8_conv), &name, &name_len, UG(utf8_conv), &uri, &uri_len, UG(utf8_conv), &content, &content_len, UG(utf8_conv)) == FAILURE) { return; } @@ -838,7 +838,7 @@ } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs!&s&s!&s&", &pind, + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs!&s&s!&|s!&", &pind, &prefix, &prefix_len, UG(utf8_conv), &name, &name_len, UG(utf8_conv), &uri, &uri_len, UG(utf8_conv), &content, &content_len, UG(utf8_conv)) == FAILURE) { return; } @@ -850,7 +850,7 @@ ptr = intern->ptr; if (ptr) { - if (!content || content_len < 1) { + if (!content) { retval = xmlTextWriterStartElementNS(ptr,(xmlChar *)prefix, (xmlChar *)name, (xmlChar *)uri); if (retval == -1) { RETURN_FALSE; http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/tests/bug41287.phpt?r1=1.3&r2=1.4&diff_format=u Index: php-src/ext/xmlwriter/tests/bug41287.phpt diff -u php-src/ext/xmlwriter/tests/bug41287.phpt:1.3 php-src/ext/xmlwriter/tests/bug41287.phpt:1.4 --- php-src/ext/xmlwriter/tests/bug41287.phpt:1.3 Tue May 8 21:40:25 2007 +++ php-src/ext/xmlwriter/tests/bug41287.phpt Mon May 14 09:22:44 2007 @@ -30,14 +30,14 @@ --EXPECTF-- <?xml version="1.0"?> <test:test xmlns:test="urn:x-test:"> - <test:foo/> - <bar xmlns="urn:x-test:"/> - <bar xmlns=""/> + <test:foo></test:foo> + <bar xmlns="urn:x-test:"></bar> + <bar xmlns=""></bar> </test:test> <?xml version="1.0"?> <test:test xmlns:test="urn:x-test:"> - <test:foo/> - <bar xmlns="urn:x-test:"/> - <bar xmlns=""/> + <test:foo></test:foo> + <bar xmlns="urn:x-test:"></bar> + <bar xmlns=""></bar> </test:test> http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/tests/bug41326.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/xmlwriter/tests/bug41326.phpt diff -u php-src/ext/xmlwriter/tests/bug41326.phpt:1.1 php-src/ext/xmlwriter/tests/bug41326.phpt:1.2 --- php-src/ext/xmlwriter/tests/bug41326.phpt:1.1 Tue May 8 21:40:25 2007 +++ php-src/ext/xmlwriter/tests/bug41326.phpt Mon May 14 09:22:44 2007 @@ -8,7 +8,8 @@ $xml->startDocument(); $xml->startElement('test'); $xml->writeElement('foo', null); -$xml->writeElement('foo2', null); +$xml->writeElement('foo2', ""); +$xml->writeElement('foo3'); $xml->startElement('bar'); $xml->endElement('bar'); $xml->endElement(); @@ -23,6 +24,8 @@ $xw->startElementNS('test', 'test', 'urn:x-test:'); $xw->writeElementNS('test', 'foo', null, ''); $xw->writeElementNS(null, 'bar', 'urn:x-test:', ''); +$xw->writeElementNS(null, 'bar', 'urn:x-test:', NULL); +$xw->writeElementNS(null, 'bar', 'urn:x-test:'); $xw->writeElementNS(null, 'bar', '', ''); $xw->endElement(); $xw->endDocument(); @@ -32,13 +35,16 @@ <?xml version="1.0"?> <test> <foo/> - <foo2/> + <foo2></foo2> + <foo3/> <bar/> </test> <?xml version="1.0"?> <test:test xmlns:test="urn:x-test:"> - <test:foo/> + <test:foo></test:foo> + <bar xmlns="urn:x-test:"></bar> <bar xmlns="urn:x-test:"/> - <bar xmlns=""/> + <bar xmlns="urn:x-test:"/> + <bar xmlns=""></bar> </test:test>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php