| version 1.1.1.1, 2012/02/21 23:37:58 | version 1.1.1.2, 2014/06/15 19:53:28 | 
| Line 21 | Line 21 | 
 |  |  | 
 | #include <libxml/xmlwriter.h> | #include <libxml/xmlwriter.h> | 
 |  |  | 
 |  | #include "buf.h" | 
 |  | #include "enc.h" | 
 |  | #include "save.h" | 
 |  |  | 
 | #define B64LINELEN 72 | #define B64LINELEN 72 | 
 | #define B64CRLF "\r\n" | #define B64CRLF "\r\n" | 
 |  |  | 
| Line 548  xmlTextWriterStartDocument(xmlTextWriterPtr writer, co | Line 552  xmlTextWriterStartDocument(xmlTextWriterPtr writer, co | 
 | writer->out->encoder = encoder; | writer->out->encoder = encoder; | 
 | if (encoder != NULL) { | if (encoder != NULL) { | 
 | if (writer->out->conv == NULL) { | if (writer->out->conv == NULL) { | 
| writer->out->conv = xmlBufferCreateSize(4000); | writer->out->conv = xmlBufCreateSize(4000); | 
 | } | } | 
| xmlCharEncOutFunc(encoder, writer->out->conv, NULL); | xmlCharEncOutput(writer->out, 1); | 
 | if ((writer->doc != NULL) && (writer->doc->encoding == NULL)) | if ((writer->doc != NULL) && (writer->doc->encoding == NULL)) | 
 | writer->doc->encoding = xmlStrdup((xmlChar *)writer->out->encoder->name); | writer->doc->encoding = xmlStrdup((xmlChar *)writer->out->encoder->name); | 
 | } else | } else | 
| Line 1074  xmlTextWriterStartElementNS(xmlTextWriterPtr writer, | Line 1078  xmlTextWriterStartElementNS(xmlTextWriterPtr writer, | 
 | sum += count; | sum += count; | 
 |  |  | 
 | if (namespaceURI != 0) { | if (namespaceURI != 0) { | 
| xmlTextWriterNsStackEntry *p = (xmlTextWriterNsStackEntry *) | xmlTextWriterNsStackEntry *p = (xmlTextWriterNsStackEntry *) | 
 | xmlMalloc(sizeof(xmlTextWriterNsStackEntry)); | xmlMalloc(sizeof(xmlTextWriterNsStackEntry)); | 
 | if (p == 0) { | if (p == 0) { | 
| xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, | xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, | 
 | "xmlTextWriterStartElementNS : out of memory!\n"); | "xmlTextWriterStartElementNS : out of memory!\n"); | 
 | return -1; | return -1; | 
 | } | } | 
| Line 1501  xmlTextWriterWriteString(xmlTextWriterPtr writer, cons | Line 1505  xmlTextWriterWriteString(xmlTextWriterPtr writer, cons | 
 | break; | break; | 
 | case XML_TEXTWRITER_ATTRIBUTE: | case XML_TEXTWRITER_ATTRIBUTE: | 
 | buf = NULL; | buf = NULL; | 
| xmlAttrSerializeTxtContent(writer->out->buffer, writer->doc, | xmlBufAttrSerializeTxtContent(writer->out->buffer, | 
| NULL, content); | writer->doc, NULL, content); | 
 | break; | break; | 
 | default: | default: | 
 | break; | break; | 
| Line 1663  xmlTextWriterWriteBase64(xmlTextWriterPtr writer, cons | Line 1667  xmlTextWriterWriteBase64(xmlTextWriterPtr writer, cons | 
 | * Write hqx encoded data to an xmlOutputBuffer. | * Write hqx encoded data to an xmlOutputBuffer. | 
 | * ::todo | * ::todo | 
 | * | * | 
| * Returns the bytes written (may be 0 because of buffering) | * Returns the bytes written (may be 0 because of buffering) | 
 | * or -1 in case of error | * or -1 in case of error | 
 | */ | */ | 
 | static int | static int | 
| Line 1672  xmlOutputBufferWriteBinHex(xmlOutputBufferPtr out, | Line 1676  xmlOutputBufferWriteBinHex(xmlOutputBufferPtr out, | 
 | { | { | 
 | int count; | int count; | 
 | int sum; | int sum; | 
| static char hex[16] = | static char hex[16] = | 
| {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; | {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; | 
 | int i; | int i; | 
 |  |  | 
 | if ((out == NULL) || (data == NULL) || (len < 0)) { | if ((out == NULL) || (data == NULL) || (len < 0)) { | 
| Line 1849  xmlTextWriterStartAttributeNS(xmlTextWriterPtr writer, | Line 1853  xmlTextWriterStartAttributeNS(xmlTextWriterPtr writer, | 
 | nsentry.uri = (xmlChar *)namespaceURI; | nsentry.uri = (xmlChar *)namespaceURI; | 
 | nsentry.elem = xmlListFront(writer->nodes); | nsentry.elem = xmlListFront(writer->nodes); | 
 |  |  | 
| curns = (xmlTextWriterNsStackEntry *)xmlListSearch(writer->nsstack, | curns = (xmlTextWriterNsStackEntry *)xmlListSearch(writer->nsstack, | 
 | (void *)&nsentry); | (void *)&nsentry); | 
 | if ((curns != NULL)) { | if ((curns != NULL)) { | 
 | xmlFree(buf); | xmlFree(buf); | 
| Line 2496  xmlTextWriterEndPI(xmlTextWriterPtr writer) | Line 2500  xmlTextWriterEndPI(xmlTextWriterPtr writer) | 
 |  |  | 
 | if (writer->indent) { | if (writer->indent) { | 
 | count = xmlOutputBufferWriteString(writer->out, "\n"); | count = xmlOutputBufferWriteString(writer->out, "\n"); | 
| if (count < 0) | if (count < 0) | 
| return -1; | return -1; | 
 | sum += count; | sum += count; | 
 | } | } | 
 |  |  | 
| Line 4603  xmlTextWriterSetIndentString(xmlTextWriterPtr writer, | Line 4607  xmlTextWriterSetIndentString(xmlTextWriterPtr writer, | 
 | return -1; | return -1; | 
 | else | else | 
 | return 0; | return 0; | 
 |  | } | 
 |  |  | 
 |  | /** | 
 |  | * xmlTextWriterSetQuoteChar: | 
 |  | * @writer:  the xmlTextWriterPtr | 
 |  | * @quotechar:  the quote character | 
 |  | * | 
 |  | * Set the character used for quoting attributes. | 
 |  | * | 
 |  | * Returns -1 on error or 0 otherwise. | 
 |  | */ | 
 |  | int | 
 |  | xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar) | 
 |  | { | 
 |  | if ((writer == NULL) || ((quotechar != '\'') && (quotechar != '"'))) | 
 |  | return -1; | 
 |  |  | 
 |  | writer->qchar = quotechar; | 
 |  |  | 
 |  | return 0; | 
 | } | } | 
 |  |  | 
 | /** | /** |