]> granicus.if.org Git - php/commitdiff
- Hopefully finally fixed the mess in rev 307562 and rev 307563.
authorGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 19 Jan 2011 00:22:06 +0000 (00:22 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 19 Jan 2011 00:22:06 +0000 (00:22 +0000)
ext/dom/document.c

index 684bb3c83f65e9282f3370c5cf209d7a8c24d1e9..2d7df36d73d532acd8c8ab015485132f2f0a2ea6 100644 (file)
@@ -1821,7 +1821,7 @@ PHP_FUNCTION(dom_document_savexml)
                        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 @@ PHP_FUNCTION(dom_document_save_html)
                        RETURN_FALSE;
                }
                
-               xmlNodeDump(buf, docp, node, 0, format);
-               mem = (xmlChar*) xmlBufferContent(buf);
-               if (!mem) {
-                       RETVAL_FALSE;
+               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 {
-                       RETVAL_STRING(mem, 1);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error dumping HTML node");
+                       RETVAL_FALSE;
                }
                xmlBufferFree(buf);
        } else {
@@ -2335,7 +2340,7 @@ PHP_FUNCTION(dom_document_save_html)
                if (!size) {
                        RETVAL_FALSE;
                } else {
-                       RETVAL_STRINGL(mem, size, 1);
+                       RETVAL_STRINGL((const char*) mem, size, 1);
                }
                if (mem)
                        xmlFree(mem);