zval *id, *nodep = NULL;
xmlDoc *docp;
xmlNode *node;
- xmlOutputBufferPtr outBuf;
xmlBufferPtr buf;
dom_object *intern, *nodeobj;
xmlChar *mem = NULL;
}
buf = xmlBufferCreate();
- outBuf = xmlOutputBufferCreateBuffer(buf, NULL);
- if (!outBuf || !buf) {
+ if (!buf) {
php_error_docref(NULL, E_WARNING, "Could not fetch buffer");
RETURN_FALSE;
}
int one_size;
for (node = node->children; node; node = node->next) {
- htmlNodeDumpFormatOutput(outBuf, docp, node, NULL, format);
-#ifdef LIBXML2_NEW_BUFFER
- one_size = !outBuf->error ? xmlOutputBufferGetSize(outBuf) : -1;
-#else
- one_size = !outBuf->error ? outBuf->buffer->use : -1;
-#endif
+ one_size = htmlNodeDump(buf, docp, node);
+
if (one_size >= 0) {
- size = one_size;
+ size += one_size;
} else {
size = -1;
break;
}
}
} else {
- htmlNodeDumpFormatOutput(outBuf, docp, node, NULL, format);
-#ifdef LIBXML2_NEW_BUFFER
- size = !outBuf->error ? xmlOutputBufferGetSize(outBuf): -1;
-#else
- size = !outBuf->error ? outBuf->buffer->use : -1;
-#endif
+ size = htmlNodeDump(buf, docp, node);
}
if (size >= 0) {
-#ifdef LIBXML2_NEW_BUFFER
- mem = (xmlChar*) xmlOutputBufferGetContent(outBuf);
-#else
- mem = (xmlChar*) outBuf->buffer->content;
-#endif
+ mem = (xmlChar*) xmlBufferContent(buf);
if (!mem) {
RETVAL_FALSE;
} else {
php_error_docref(NULL, E_WARNING, "Error dumping HTML node");
RETVAL_FALSE;
}
- xmlOutputBufferClose(outBuf);
+ xmlBufferFree(buf);
} else {
#if LIBXML_VERSION >= 20623
htmlDocDumpMemoryFormat(docp, &mem, &size, format);
+++ /dev/null
---TEST--
-Bug #76285 DOMDocument::formatOutput attribute sometimes ignored
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
-<?php if (!defined("LIBXML_HTML_NOIMPLIED")) die("skip libxml2 2.7.7 required"); ?>
---FILE--
-<?php
-
-$dom = new DOMDocument();
-$dom->formatOutput = false;
-$html = '<div><div><a>test</a></div><div><a>test2</a></div></div>';
-$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
-$rootNode = $dom->documentElement;
-var_dump($dom->saveHTML($rootNode));
-var_dump($dom->saveHTML());
-
-?>
---EXPECT--
-string(56) "<div><div><a>test</a></div><div><a>test2</a></div></div>"
-string(57) "<div><div><a>test</a></div><div><a>test2</a></div></div>
-"