Home | History | Annotate | Download | only in libxml2

Lines Matching defs: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 static int xmlSaveSwitchEncoding(xmlSaveCtxtPtr ctxt, const char *encoding) {
463 xmlOutputBufferPtr buf = ctxt->buf;
486 static int xmlSaveClearEncoding(xmlSaveCtxtPtr ctxt) {
487 xmlOutputBufferPtr buf = ctxt->buf;
498 xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur);
500 static void xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur);
501 static void xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur);
503 static int xmlDocContentDumpOutput(xmlSaveCtxtPtr ctxt, xmlDocPtr cur);
507 * @ctxt: The save context
508 * @extra: Number of extra indents to apply to ctxt->level
513 xmlOutputBufferWriteWSNonSig(xmlSaveCtxtPtr ctxt, int extra)
516 if ((ctxt == NULL) || (ctxt->buf == NULL))
518 xmlOutputBufferWrite(ctxt->buf, 1, "\n");
519 for (i = 0; i < (ctxt->level + extra); i += ctxt->indent_nr) {
520 xmlOutputBufferWrite(ctxt->buf, ctxt->indent_size *
521 ((ctxt->level + extra - i) > ctxt->indent_nr ?
522 ctxt->indent_nr : (ctxt->level + extra - i)),
523 ctxt->indent);
531 * @ctxt: the output save context. Optional.
535 * If @ctxt is supplied, @buf should be its buffer.
538 xmlNsDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur, xmlSaveCtxtPtr ctxt) {
544 if (ctxt != NULL && ctxt->format == 2)
545 xmlOutputBufferWriteWSNonSig(ctxt, 2);
562 * @ctxt: the save context
569 xmlNsDumpOutputCtxt(xmlSaveCtxtPtr ctxt, xmlNsPtr cur) {
570 xmlNsDumpOutput(ctxt->buf, cur, ctxt);
575 * @ctxt: the save context
582 xmlNsListDumpOutputCtxt(xmlSaveCtxtPtr ctxt, xmlNsPtr cur) {
584 xmlNsDumpOutput(ctxt->buf, cur, ctxt);
613 xmlDtdDumpOutput(xmlSaveCtxtPtr ctxt, xmlDtdPtr dtd) {
619 if ((ctxt == NULL) || (ctxt->buf == NULL))
621 buf = ctxt->buf;
648 format = ctxt->format;
649 level = ctxt->level;
650 doc = ctxt->doc;
651 ctxt->format = 0;
652 ctxt->level = -1;
653 ctxt->doc = dtd->doc;
654 xmlNodeListDumpOutput(ctxt, dtd->children);
655 ctxt->format = format;
656 ctxt->level = level;
657 ctxt->doc = doc;
669 xmlAttrDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) {
673 buf = ctxt->buf;
675 if (ctxt->format == 2)
676 xmlOutputBufferWriteWSNonSig(ctxt, 2);
699 xmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) {
702 xmlAttrDumpOutput(ctxt, cur);
716 xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
720 buf = ctxt->buf;
722 if ((ctxt->format == 1) && (xmlIndentTreeOutput) &&
726 xmlOutputBufferWrite(buf, ctxt->indent_size *
727 (ctxt->level > ctxt->indent_nr ?
728 ctxt->indent_nr : ctxt->level),
729 ctxt->indent);
730 xmlNodeDumpOutputInternal(ctxt, cur);
731 if (ctxt->format == 1) {
746 htmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
748 const xmlChar *oldctxtenc = ctxt->encoding;
749 const xmlChar *encoding = ctxt->encoding;
750 xmlOutputBufferPtr buf = ctxt->buf;
759 if (ctxt->encoding != NULL) {
760 doc->encoding = BAD_CAST ctxt->encoding;
774 if (xmlSaveSwitchEncoding(ctxt, (const char*) encoding) < 0) {
780 if (ctxt->options & XML_SAVE_FORMAT)
790 xmlSaveClearEncoding(ctxt);
805 xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
812 buf = ctxt->buf;
819 xmlDocContentDumpOutput(ctxt, (xmlDocPtr) cur);
823 if (ctxt->options & XML_SAVE_XHTML) {
824 xhtmlNodeDumpOutput(ctxt, cur);
829 ((ctxt->options & XML_SAVE_AS_XML) == 0)) ||
830 (ctxt->options & XML_SAVE_AS_HTML)) {
831 htmlNodeDumpOutputInternal(ctxt, cur);
836 xmlDtdDumpOutput(ctxt, (xmlDtdPtr) cur);
840 xmlNodeListDumpOutput(ctxt, cur->children);
858 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
874 if (ctxt->format == 2)
875 xmlOutputBufferWriteWSNonSig(ctxt, 0);
884 if (ctxt->format == 2)
885 xmlOutputBufferWriteWSNonSig(ctxt, 0);
929 xmlAttrDumpOutput(ctxt, (xmlAttrPtr) cur);
933 xmlNsDumpOutputCtxt(ctxt, (xmlNsPtr) cur);
937 format = ctxt->format;
944 ctxt->format = 0;
958 xmlNsListDumpOutputCtxt(ctxt, cur->nsDef);
960 xmlAttrListDumpOutput(ctxt, cur->properties);
963 (cur->children == NULL) && ((ctxt->options & XML_SAVE_NO_EMPTY) == 0)) {
964 if (ctxt->format == 2)
965 xmlOutputBufferWriteWSNonSig(ctxt, 0);
967 ctxt->format = format;
970 if (ctxt->format == 2)
971 xmlOutputBufferWriteWSNonSig(ctxt, 1);
974 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
977 if (ctxt->format == 1) xmlOutputBufferWrite(buf, 1, "\n");
978 if (ctxt->level >= 0) ctxt->level++;
979 xmlNodeListDumpOutput(ctxt, cur->children);
980 if (ctxt->level > 0) ctxt->level--;
981 if ((xmlIndentTreeOutput) && (ctxt->format == 1))
982 xmlOutputBufferWrite(buf, ctxt->indent_size *
983 (ctxt->level > ctxt->indent_nr ?
984 ctxt->indent_nr : ctxt->level),
985 ctxt->indent);
994 if (ctxt->format == 2)
995 xmlOutputBufferWriteWSNonSig(ctxt, 0);
997 ctxt->format = format;
1007 xmlDocContentDumpOutput(xmlSaveCtxtPtr ctxt, xmlDocPtr cur) {
1013 const xmlChar *oldctxtenc = ctxt->encoding;
1014 const xmlChar *encoding = ctxt->encoding;
1015 xmlCharEncodingOutputFunc oldescape = ctxt->escape;
1016 xmlCharEncodingOutputFunc oldescapeAttr = ctxt->escapeAttr;
1017 xmlOutputBufferPtr buf = ctxt->buf;
1027 if (ctxt->encoding != NULL) {
1028 cur->encoding = BAD_CAST ctxt->encoding;
1037 ((ctxt->options & XML_SAVE_AS_XML) == 0) &&
1038 ((ctxt->options & XML_SAVE_XHTML) == 0)) ||
1039 (ctxt->options & XML_SAVE_AS_HTML)) {
1049 if (xmlSaveSwitchEncoding(ctxt, (const char*) encoding) < 0) {
1054 if (ctxt->options & XML_SAVE_FORMAT)
1060 if (ctxt->encoding != NULL)
1067 (ctxt->options & XML_SAVE_AS_XML) ||
1068 (ctxt->options & XML_SAVE_XHTML)) {
1072 ((ctxt->options & XML_SAVE_NO_DECL) == 0)) {
1081 if (xmlSaveSwitchEncoding(ctxt, (const char*) encoding) < 0) {
1087 if (ctxt->escape == xmlEscapeEntities)
1088 ctxt->escape = NULL;
1089 if (ctxt->escapeAttr == xmlEscapeEntities)
1090 ctxt->escapeAttr = NULL;
1097 if ((ctxt->options & XML_SAVE_NO_DECL) == 0) {
1119 if (ctxt->options & XML_SAVE_XHTML)
1121 if ((ctxt->options & XML_SAVE_NO_XHTML) == 0) {
1133 ctxt->level = 0;
1136 xhtmlNodeDumpOutput(ctxt, child);
1139 xmlNodeDumpOutputInternal(ctxt, child);
1150 xmlSaveClearEncoding(ctxt);
1151 ctxt->escape = oldescape;
1152 ctxt->escapeAttr = oldescapeAttr;
1239 xhtmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) {
1248 buf = ctxt->buf;
1274 xmlAttrDumpOutput(ctxt, cur);
1325 xhtmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
1329 buf = ctxt->buf;
1331 if ((ctxt->format == 1) && (xmlIndentTreeOutput) &&
1333 xmlOutputBufferWrite(buf, ctxt->indent_size *
1334 (ctxt->level > ctxt->indent_nr ?
1335 ctxt->indent_nr : ctxt->level),
1336 ctxt->indent);
1337 xhtmlNodeDumpOutput(ctxt, cur);
1338 if (ctxt->format == 1) {
1357 xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
1366 xmlDocContentDumpOutput(ctxt, (xmlDocPtr) cur);
1374 xmlDtdDumpOutput(ctxt, (xmlDtdPtr) cur);
1378 xhtmlNodeListDumpOutput(ctxt, cur->children);
1381 buf = ctxt->buf;
1398 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
1463 xmlAttrDumpOutput(ctxt, (xmlAttrPtr) cur);
1467 format = ctxt->format;
1487 xmlNsListDumpOutputCtxt(ctxt, cur->nsDef);
1497 xhtmlAttrListDumpOutput(ctxt, cur->properties);
1535 if (ctxt->format == 1) {
1538 xmlOutputBufferWrite(buf, ctxt->indent_size *
1539 (ctxt->level + 1 > ctxt->indent_nr ?
1540 ctxt->indent_nr : ctxt->level + 1), ctxt->indent);
1544 if (ctxt->encoding) {
1545 xmlOutputBufferWriteString(buf, (const char *)ctxt->encoding);
1550 if (ctxt->format == 1)
1570 if (ctxt->format == 1) {
1573 xmlOutputBufferWrite(buf, ctxt->indent_size *
1574 (ctxt->level + 1 > ctxt->indent_nr ?
1575 ctxt->indent_nr : ctxt->level + 1), ctxt->indent);
1579 if (ctxt->encoding) {
1580 xmlOutputBufferWriteString(buf, (const char *)ctxt->encoding);
1587 xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
1612 int level = ctxt->level;
1613 int indent = ctxt->format;
1615 ctxt->level = 0;
1616 ctxt->format = 0;
1620 ctxt->level = level;
1621 ctxt->format = indent;
1648 int level = ctxt->level;
1649 int indent = ctxt->format;
1651 ctxt->level = 0;
1652 ctxt->format = 0;
1653 xhtmlNodeDumpOutput(ctxt, child);
1654 ctxt->level = level;
1655 ctxt->format = indent;
1663 int indent = ctxt->format;
1666 if (ctxt->level >= 0) ctxt->level++;
1667 ctxt->format = format;
1668 xhtmlNodeListDumpOutput(ctxt, cur->children);
1669 if (ctxt->level > 0) ctxt->level--;
1670 ctxt->format = indent;
1672 xmlOutputBufferWrite(buf, ctxt->indent_size *
1673 (ctxt->level > ctxt->indent_nr ?
1674 ctxt->indent_nr : ctxt->level),
1675 ctxt->indent);
1822 * @ctxt: a document saving context
1832 xmlSaveDoc(xmlSaveCtxtPtr ctxt, xmlDocPtr doc)
1836 if ((ctxt == NULL) || (doc == NULL)) return(-1);
1837 if (xmlDocContentDumpOutput(ctxt, doc) < 0)
1844 * @ctxt: a document saving context
1854 xmlSaveTree(xmlSaveCtxtPtr ctxt, xmlNodePtr node)
1858 if ((ctxt == NULL) || (node == NULL)) return(-1);
1859 xmlNodeDumpOutputInternal(ctxt, node);
1865 * @ctxt: a document saving context
1873 xmlSaveFlush(xmlSaveCtxtPtr ctxt)
1875 if (ctxt == NULL) return(-1);
1876 if (ctxt->buf == NULL) return(-1);
1877 return(xmlOutputBufferFlush(ctxt->buf));
1882 * @ctxt: a document saving context
1890 xmlSaveClose(xmlSaveCtxtPtr ctxt)
1894 if (ctxt == NULL) return(-1);
1895 ret = xmlSaveFlush(ctxt);
1896 xmlFreeSaveCtxt(ctxt);
1902 * @ctxt: a document saving context
1910 xmlSaveSetEscape(xmlSaveCtxtPtr ctxt, xmlCharEncodingOutputFunc escape)
1912 if (ctxt == NULL) return(-1);
1913 ctxt->escape = escape;
1919 * @ctxt: a document saving context
1927 xmlSaveSetAttrEscape(xmlSaveCtxtPtr ctxt, xmlCharEncodingOutputFunc escape)
1929 if (ctxt == NULL) return(-1);
1930 ctxt->escapeAttr = escape;
2192 xmlSaveCtxt ctxt;
2205 memset(&ctxt, 0, sizeof(ctxt));
2206 ctxt.doc = doc;
2207 ctxt.buf = buf;
2208 ctxt.level = level;
2209 ctxt.format = format ? 1 : 0;
2210 ctxt.encoding = (const xmlChar *) encoding;
2211 xmlSaveCtxtInit(&ctxt);
2212 ctxt.options |= XML_SAVE_AS_XML;
2223 xhtmlNodeDumpOutput(&ctxt, cur);
2226 xmlNodeDumpOutputInternal(&ctxt, cur);
2248 xmlSaveCtxt ctxt;
2291 memset(&ctxt, 0, sizeof(ctxt));
2292 ctxt.doc = out_doc;
2293 ctxt.buf = out_buff;
2294 ctxt.level = 0;
2295 ctxt.format = format ? 1 : 0;
2296 ctxt.encoding = (const xmlChar *) txt_encoding;
2297 xmlSaveCtxtInit(&ctxt);
2298 ctxt.options |= XML_SAVE_AS_XML;
2299 xmlDocContentDumpOutput(&ctxt, out_doc);
2385 xmlSaveCtxt ctxt;
2410 memset(&ctxt, 0, sizeof(ctxt));
2411 ctxt.doc = cur;
2412 ctxt.buf = buf;
2413 ctxt.level = 0;
2414 ctxt.format = format ? 1 : 0;
2415 ctxt.encoding = (const xmlChar *) encoding;
2416 xmlSaveCtxtInit(&ctxt);
2417 ctxt.options |= XML_SAVE_AS_XML;
2418 xmlDocContentDumpOutput(&ctxt, cur);
2452 xmlSaveCtxt ctxt;
2460 memset(&ctxt, 0, sizeof(ctxt));
2461 ctxt.doc = cur;
2462 ctxt.buf = buf;
2463 ctxt.level = 0;
2464 ctxt.format = 0;
2465 ctxt.encoding = (const xmlChar *) encoding;
2466 xmlSaveCtxtInit(&ctxt);
2467 ctxt.options |= XML_SAVE_AS_XML;
2468 xmlDocContentDumpOutput(&ctxt, cur);
2490 xmlSaveCtxt ctxt;
2500 memset(&ctxt, 0, sizeof(ctxt));
2501 ctxt.doc = cur;
2502 ctxt.buf = buf;
2503 ctxt.level = 0;
2504 ctxt.format = format ? 1 : 0;
2505 ctxt.encoding = (const xmlChar *) encoding;
2506 xmlSaveCtxtInit(&ctxt);
2507 ctxt.options |= XML_SAVE_AS_XML;
2508 xmlDocContentDumpOutput(&ctxt, cur);
2529 xmlSaveCtxt ctxt;
2555 memset(&ctxt, 0, sizeof(ctxt));
2556 ctxt.doc = cur;
2557 ctxt.buf = buf;
2558 ctxt.level = 0;
2559 ctxt.format = format ? 1 : 0;
2560 ctxt.encoding = (const xmlChar *) encoding;
2561 xmlSaveCtxtInit(&ctxt);
2562 ctxt.options |= XML_SAVE_AS_XML;
2564 xmlDocContentDumpOutput(&ctxt, cur);