On 06/19/2011 09:32 PM, Thomas Mullaly wrote:
+static inline void reset_output_buffer(mxwriter *This, LPCSTR encoding) +{
- xmlOutputBufferClose(This->buffer);
- if (encoding)
This->buffer = xmlAllocOutputBuffer(xmlFindCharEncodingHandler(encoding));
- else if (!This->dest)
This->buffer = xmlAllocOutputBuffer(xmlFindCharEncodingHandler("UTF-16"));
- else {
LPSTR enc = heap_strdupWtoA(This->encoding);
This->buffer = xmlAllocOutputBuffer(xmlFindCharEncodingHandler(enc));
heap_free(enc);
- }
- This->dest_written = 0;
+}
Libxml2 has the various encodings enum'd out as xmlCharEncoding; better to pass the enum around and avoid the string comparison. Then you can use xmlGetCharEncodingHandler() instead of xmlFindCharEncodingHandler().