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