version 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; |
} |
} |
|
|
/** |
/** |