Lines Matching refs:ctxt
322 * @ctxt: the saving context
327 xmlSaveCtxtInit(xmlSaveCtxtPtr ctxt)
332 if (ctxt == NULL) return;
333 if ((ctxt->encoding == NULL) && (ctxt->escape == NULL))
334 ctxt->escape = xmlEscapeEntities;
337 memset(&ctxt->indent[0], 0, MAX_INDENT + 1);
339 ctxt->indent_size = len;
340 ctxt->indent_nr = MAX_INDENT / ctxt->indent_size;
341 for (i = 0;i < ctxt->indent_nr;i++)
342 memcpy(&ctxt->indent[i * ctxt->indent_size], xmlTreeIndentString,
343 ctxt->indent_size);
344 ctxt->indent[ctxt->indent_nr * ctxt->indent_size] = 0;
348 ctxt->options |= XML_SAVE_NO_EMPTY;
358 xmlFreeSaveCtxt(xmlSaveCtxtPtr ctxt)
360 if (ctxt == NULL) return;
361 if (ctxt->encoding != NULL)
362 xmlFree((char *) ctxt->encoding);
363 if (ctxt->buf != NULL)
364 xmlOutputBufferClose(ctxt->buf);
365 xmlFree(ctxt);
462 xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur);
464 static void xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur);
465 static void xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur);
467 static int xmlDocContentDumpOutput(xmlSaveCtxtPtr ctxt, xmlDocPtr cur);
519 xmlDtdDumpOutput(xmlSaveCtxtPtr ctxt, xmlDtdPtr dtd) {
525 if ((ctxt == NULL) || (ctxt->buf == NULL))
527 buf = ctxt->buf;
554 format = ctxt->format;
555 level = ctxt->level;
556 doc = ctxt->doc;
557 ctxt->format = 0;
558 ctxt->level = -1;
559 ctxt->doc = dtd->doc;
560 xmlNodeListDumpOutput(ctxt, dtd->children);
561 ctxt->format = format;
562 ctxt->level = level;
563 ctxt->doc = doc;
575 xmlAttrDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) {
579 buf = ctxt->buf;
602 xmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) {
605 xmlAttrDumpOutput(ctxt, cur);
619 xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
623 buf = ctxt->buf;
625 if ((ctxt->format) && (xmlIndentTreeOutput) &&
629 xmlOutputBufferWrite(buf, ctxt->indent_size *
630 (ctxt->level > ctxt->indent_nr ?
631 ctxt->indent_nr : ctxt->level),
632 ctxt->indent);
633 xmlNodeDumpOutputInternal(ctxt, cur);
634 if (ctxt->format) {
648 xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
655 buf = ctxt->buf;
662 xmlDocContentDumpOutput(ctxt, (xmlDocPtr) cur);
666 xmlDtdDumpOutput(ctxt, (xmlDtdPtr) cur);
670 xmlNodeListDumpOutput(ctxt, cur->children);
688 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
754 xmlAttrDumpOutput(ctxt, (xmlAttrPtr) cur);
762 format = ctxt->format;
769 ctxt->format = 0;
785 xmlAttrListDumpOutput(ctxt, cur->properties);
788 (cur->children == NULL) && ((ctxt->options & XML_SAVE_NO_EMPTY) == 0)) {
790 ctxt->format = format;
795 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
798 if (ctxt->format) xmlOutputBufferWrite(buf, 1, "\n");
799 if (ctxt->level >= 0) ctxt->level++;
800 xmlNodeListDumpOutput(ctxt, cur->children);
801 if (ctxt->level > 0) ctxt->level--;
802 if ((xmlIndentTreeOutput) && (ctxt->format))
803 xmlOutputBufferWrite(buf, ctxt->indent_size *
804 (ctxt->level > ctxt->indent_nr ?
805 ctxt->indent_nr : ctxt->level),
806 ctxt->indent);
816 ctxt->format = format;
826 xmlDocContentDumpOutput(xmlSaveCtxtPtr ctxt, xmlDocPtr cur) {
832 const xmlChar *oldctxtenc = ctxt->encoding;
833 const xmlChar *encoding = ctxt->encoding;
834 xmlCharEncodingOutputFunc oldescape = ctxt->escape;
835 xmlCharEncodingOutputFunc oldescapeAttr = ctxt->escapeAttr;
836 xmlOutputBufferPtr buf = ctxt->buf;
841 if (ctxt->encoding != NULL) {
842 cur->encoding = BAD_CAST ctxt->encoding;
853 ((ctxt->options & XML_SAVE_NO_DECL) == 0)) {
879 if (ctxt->escape == xmlEscapeEntities)
880 ctxt->escape = NULL;
881 if (ctxt->escapeAttr == xmlEscapeEntities)
882 ctxt->escapeAttr = NULL;
889 if ((ctxt->options & XML_SAVE_NO_DECL) == 0) {
911 if ((ctxt->options & XML_SAVE_NO_XHTML) == 0) {
923 ctxt->level = 0;
926 xhtmlNodeDumpOutput(ctxt, child);
929 xmlNodeDumpOutputInternal(ctxt, child);
934 if (ctxt->encoding != NULL)
941 ((ctxt->options & XML_SAVE_NO_DECL) == 0)) {
951 ctxt->escape = oldescape;
952 ctxt->escapeAttr = oldescapeAttr;
1038 xhtmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) {
1047 buf = ctxt->buf;
1073 xmlAttrDumpOutput(ctxt, cur);
1124 xhtmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
1128 buf = ctxt->buf;
1130 if ((ctxt->format) && (xmlIndentTreeOutput) &&
1132 xmlOutputBufferWrite(buf, ctxt->indent_size *
1133 (ctxt->level > ctxt->indent_nr ?
1134 ctxt->indent_nr : ctxt->level),
1135 ctxt->indent);
1136 xhtmlNodeDumpOutput(ctxt, cur);
1137 if (ctxt->format) {
1156 xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
1165 xmlDocContentDumpOutput(ctxt, (xmlDocPtr) cur);
1173 xmlDtdDumpOutput(ctxt, (xmlDtdPtr) cur);
1177 xhtmlNodeListDumpOutput(ctxt, cur->children);
1180 buf = ctxt->buf;
1197 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
1258 xmlAttrDumpOutput(ctxt, (xmlAttrPtr) cur);
1262 format = ctxt->format;
1292 xhtmlAttrListDumpOutput(ctxt, cur->properties);
1330 if (ctxt->format) {
1333 xmlOutputBufferWrite(buf, ctxt->indent_size *
1334 (ctxt->level + 1 > ctxt->indent_nr ?
1335 ctxt->indent_nr : ctxt->level + 1), ctxt->indent);
1339 if (ctxt->encoding) {
1340 xmlOutputBufferWriteString(buf, (const char *)ctxt->encoding);
1345 if (ctxt->format)
1365 if (ctxt->format) {
1368 xmlOutputBufferWrite(buf, ctxt->indent_size *
1369 (ctxt->level + 1 > ctxt->indent_nr ?
1370 ctxt->indent_nr : ctxt->level + 1), ctxt->indent);
1374 if (ctxt->encoding) {
1375 xmlOutputBufferWriteString(buf, (const char *)ctxt->encoding);
1382 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
1407 int level = ctxt->level;
1408 int indent = ctxt->format;
1410 ctxt->level = 0;
1411 ctxt->format = 0;
1415 ctxt->level = level;
1416 ctxt->format = indent;
1443 int level = ctxt->level;
1444 int indent = ctxt->format;
1446 ctxt->level = 0;
1447 ctxt->format = 0;
1448 xhtmlNodeDumpOutput(ctxt, child);
1449 ctxt->level = level;
1450 ctxt->format = indent;
1458 int indent = ctxt->format;
1461 if (ctxt->level >= 0) ctxt->level++;
1462 ctxt->format = format;
1463 xhtmlNodeListDumpOutput(ctxt, cur->children);
1464 if (ctxt->level > 0) ctxt->level--;
1465 ctxt->format = indent;
1467 xmlOutputBufferWrite(buf, ctxt->indent_size *
1468 (ctxt->level > ctxt->indent_nr ?
1469 ctxt->indent_nr : ctxt->level),
1470 ctxt->indent);
1617 * @ctxt: a document saving context
1627 xmlSaveDoc(xmlSaveCtxtPtr ctxt, xmlDocPtr doc)
1631 if ((ctxt == NULL) || (doc == NULL)) return(-1);
1632 if (xmlDocContentDumpOutput(ctxt, doc) < 0)
1639 * @ctxt: a document saving context
1649 xmlSaveTree(xmlSaveCtxtPtr ctxt, xmlNodePtr node)
1653 if ((ctxt == NULL) || (node == NULL)) return(-1);
1654 xmlNodeDumpOutputInternal(ctxt, node);
1660 * @ctxt: a document saving context
1668 xmlSaveFlush(xmlSaveCtxtPtr ctxt)
1670 if (ctxt == NULL) return(-1);
1671 if (ctxt->buf == NULL) return(-1);
1672 return(xmlOutputBufferFlush(ctxt->buf));
1677 * @ctxt: a document saving context
1685 xmlSaveClose(xmlSaveCtxtPtr ctxt)
1689 if (ctxt == NULL) return(-1);
1690 ret = xmlSaveFlush(ctxt);
1691 xmlFreeSaveCtxt(ctxt);
1697 * @ctxt: a document saving context
1705 xmlSaveSetEscape(xmlSaveCtxtPtr ctxt, xmlCharEncodingOutputFunc escape)
1707 if (ctxt == NULL) return(-1);
1708 ctxt->escape = escape;
1714 * @ctxt: a document saving context
1722 xmlSaveSetAttrEscape(xmlSaveCtxtPtr ctxt, xmlCharEncodingOutputFunc escape)
1724 if (ctxt == NULL) return(-1);
1725 ctxt->escapeAttr = escape;
1987 xmlSaveCtxt ctxt;
2000 memset(&ctxt, 0, sizeof(ctxt));
2001 ctxt.doc = doc;
2002 ctxt.buf = buf;
2003 ctxt.level = level;
2004 ctxt.format = format;
2005 ctxt.encoding = (const xmlChar *) encoding;
2006 xmlSaveCtxtInit(&ctxt);
2017 xhtmlNodeDumpOutput(&ctxt, cur);
2020 xmlNodeDumpOutputInternal(&ctxt, cur);
2042 xmlSaveCtxt ctxt;
2085 memset(&ctxt, 0, sizeof(ctxt));
2086 ctxt.doc = out_doc;
2087 ctxt.buf = out_buff;
2088 ctxt.level = 0;
2089 ctxt.format = format;
2090 ctxt.encoding = (const xmlChar *) txt_encoding;
2091 xmlSaveCtxtInit(&ctxt);
2092 xmlDocContentDumpOutput(&ctxt, out_doc);
2178 xmlSaveCtxt ctxt;
2203 memset(&ctxt, 0, sizeof(ctxt));
2204 ctxt.doc = cur;
2205 ctxt.buf = buf;
2206 ctxt.level = 0;
2207 ctxt.format = format;
2208 ctxt.encoding = (const xmlChar *) encoding;
2209 xmlSaveCtxtInit(&ctxt);
2210 xmlDocContentDumpOutput(&ctxt, cur);
2244 xmlSaveCtxt ctxt;
2252 memset(&ctxt, 0, sizeof(ctxt));
2253 ctxt.doc = cur;
2254 ctxt.buf = buf;
2255 ctxt.level = 0;
2256 ctxt.format = 0;
2257 ctxt.encoding = (const xmlChar *) encoding;
2258 xmlSaveCtxtInit(&ctxt);
2259 xmlDocContentDumpOutput(&ctxt, cur);
2281 xmlSaveCtxt ctxt;
2291 memset(&ctxt, 0, sizeof(ctxt));
2292 ctxt.doc = cur;
2293 ctxt.buf = buf;
2294 ctxt.level = 0;
2295 ctxt.format = format;
2296 ctxt.encoding = (const xmlChar *) encoding;
2297 xmlSaveCtxtInit(&ctxt);
2298 xmlDocContentDumpOutput(&ctxt, cur);
2319 xmlSaveCtxt ctxt;
2345 memset(&ctxt, 0, sizeof(ctxt));
2346 ctxt.doc = cur;
2347 ctxt.buf = buf;
2348 ctxt.level = 0;
2349 ctxt.format = format;
2350 ctxt.encoding = (const xmlChar *) encoding;
2351 xmlSaveCtxtInit(&ctxt);
2353 xmlDocContentDumpOutput(&ctxt, cur);