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

Reply via email to