Commit 0e4cd17b authored by Daniel Veillard's avatar Daniel Veillard

- parser.c: fixed UTF8 BOM support in push mode

- test/utf8bom.xml result/utf8bom.xml result/noent/utf8bom.xml:
  added a specific testcase
Daniel
parent 3e5bb8e5
Thu Jun 28 14:11:28 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* parser.c: fixed UTF8 BOM support in push mode
* test/utf8bom.xml result/utf8bom.xml result/noent/utf8bom.xml:
added a specific testcase
Wed Jun 27 18:33:13 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* Makefile.am: added --push regression tests
......
......@@ -7632,11 +7632,31 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
*/
goto done;
case XML_PARSER_START:
/*
* Very first chars read from the document flow.
*/
if (avail < 2)
goto done;
if (ctxt->charset == XML_CHAR_ENCODING_NONE) {
xmlChar start[4];
xmlCharEncoding enc;
/*
* Very first chars read from the document flow.
*/
if (avail < 4)
goto done;
/*
* Get the 4 first bytes and decode the charset
* if enc != XML_CHAR_ENCODING_NONE
* plug some encoding conversion routines.
*/
start[0] = RAW;
start[1] = NXT(1);
start[2] = NXT(2);
start[3] = NXT(3);
enc = xmlDetectCharEncoding(start, 4);
if (enc != XML_CHAR_ENCODING_NONE) {
xmlSwitchEncoding(ctxt, enc);
}
break;
}
cur = ctxt->input->cur[0];
next = ctxt->input->cur[1];
......@@ -8509,9 +8529,6 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data,
inputStream->cur = inputStream->buf->buffer->content;
inputStream->end =
&inputStream->buf->buffer->content[inputStream->buf->buffer->use];
if (enc != XML_CHAR_ENCODING_NONE) {
xmlSwitchEncoding(ctxt, enc);
}
inputPush(ctxt, inputStream);
......@@ -8523,6 +8540,10 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data,
#endif
}
if (enc != XML_CHAR_ENCODING_NONE) {
xmlSwitchEncoding(ctxt, enc);
}
return(ctxt);
}
......
<?xml version="1.0"?>
<foo/>
<?xml version="1.0"?>
<foo/>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment