cataphract Wed, 19 Jan 2011 00:22:06 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=307571
Log:
- Hopefully finally fixed the mess in rev 307562 and rev 307563.
Changed paths:
U php/php-src/branches/PHP_5_3/ext/dom/document.c
U php/php-src/trunk/ext/dom/document.c
A php/php-src/trunk/ext/dom/tests/DOMDocument_saveHTML_variant2.phpt
Modified: php/php-src/branches/PHP_5_3/ext/dom/document.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/dom/document.c 2011-01-18 23:31:53 UTC
(rev 307570)
+++ php/php-src/branches/PHP_5_3/ext/dom/document.c 2011-01-19 00:22:06 UTC
(rev 307571)
@@ -1821,7 +1821,7 @@
saveempty = xmlSaveNoEmptyTags;
xmlSaveNoEmptyTags = 1;
}
- htmlNodeDumpFormatOutput(buf, docp, node, 0, format);
+ xmlNodeDump(buf, docp, node, 0, format);
if (options & LIBXML_SAVE_NOEMPTYTAG) {
xmlSaveNoEmptyTags = saveempty;
}
@@ -2318,12 +2318,17 @@
RETURN_FALSE;
}
- xmlNodeDump(buf, docp, node, 0, format);
- mem = (xmlChar*) xmlBufferContent(buf);
- if (!mem) {
+ size = htmlNodeDump(buf, docp, node);
+ if (size >= 0) {
+ mem = (xmlChar*) xmlBufferContent(buf);
+ if (!mem) {
+ RETVAL_FALSE;
+ } else {
+ RETVAL_STRINGL((const char*) mem, size, 1);
+ }
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error
dumping HTML node");
RETVAL_FALSE;
- } else {
- RETVAL_STRING(mem, 1);
}
xmlBufferFree(buf);
} else {
@@ -2335,7 +2340,7 @@
if (!size) {
RETVAL_FALSE;
} else {
- RETVAL_STRINGL(mem, size, 1);
+ RETVAL_STRINGL((const char*) mem, size, 1);
}
if (mem)
xmlFree(mem);
Modified: php/php-src/trunk/ext/dom/document.c
===================================================================
--- php/php-src/trunk/ext/dom/document.c 2011-01-18 23:31:53 UTC (rev
307570)
+++ php/php-src/trunk/ext/dom/document.c 2011-01-19 00:22:06 UTC (rev
307571)
@@ -2318,12 +2318,17 @@
RETURN_FALSE;
}
- htmlNodeDumpFormatOutput(buf, docp, node, 0, format);
- mem = (xmlChar*) xmlBufferContent(buf);
- if (!mem) {
+ size = htmlNodeDump(buf, docp, node);
+ if (size >= 0) {
+ mem = (xmlChar*) xmlBufferContent(buf);
+ if (!mem) {
+ RETVAL_FALSE;
+ } else {
+ RETVAL_STRINGL((const char*) mem, size, 1);
+ }
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error
dumping HTML node");
RETVAL_FALSE;
- } else {
- RETVAL_STRING(mem, 1);
}
xmlBufferFree(buf);
} else {
@@ -2335,7 +2340,7 @@
if (!size) {
RETVAL_FALSE;
} else {
- RETVAL_STRINGL(mem, size, 1);
+ RETVAL_STRINGL((const char*) mem, size, 1);
}
if (mem)
xmlFree(mem);
Added: php/php-src/trunk/ext/dom/tests/DOMDocument_saveHTML_variant2.phpt
===================================================================
--- php/php-src/trunk/ext/dom/tests/DOMDocument_saveHTML_variant2.phpt
(rev 0)
+++ php/php-src/trunk/ext/dom/tests/DOMDocument_saveHTML_variant2.phpt
2011-01-19 00:22:06 UTC (rev 307571)
@@ -0,0 +1,26 @@
+--TEST--
+DOMDocument::saveHTML() vs DOMDocumet::saveXML()
+--SKIPIF--
+<?php
+require_once dirname(__FILE__) .'/skipif.inc';
+?>
+--FILE--
+<?php
+$d = new DOMDocument();
+$str = <<<EOD
+<html>
+<head>
+</head>
+<body>
+<p>Hi.<br/>there</p>
+</body>
+</html>
+EOD;
+$d->loadHTML($str);
+$e = $d->getElementsByTagName("p");
+$e = $e->item(0);
+echo $d->saveXml($e),"\n";
+echo $d->saveHtml($e),"\n";
+--EXPECTF--
+<p>Hi.<br/>there</p>
+<p>Hi.<br>there</p>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php