summaryrefslogtreecommitdiff
path: root/ext/dom/document.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dom/document.c')
-rw-r--r--ext/dom/document.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/ext/dom/document.c b/ext/dom/document.c
index 45a07f2dc2..6499b55f64 100644
--- a/ext/dom/document.c
+++ b/ext/dom/document.c
@@ -2318,12 +2318,17 @@ PHP_FUNCTION(dom_document_save_html)
RETURN_FALSE;
}
- htmlNodeDumpFormatOutput(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);