Commit 158a4d27 authored by Daniel Veillard's avatar Daniel Veillard
Browse files

fixed a push/encoding bug reported by Michael on librsvg Daniel

* parser.c: fixed a push/encoding bug reported by Michael
  on librsvg
Daniel
parent 7839e161
Wed Feb 20 23:16:08 CET 2002 Daniel Veillard <daniel@veillard.com>
* parser.c: fixed a push/encoding bug reported by Michael
on librsvg
Wed Feb 20 19:54:05 CET 2002 Daniel Veillard <daniel@veillard.com>
* include/libxml/parserInternals.h: fixes a misplaced #endif
......
......@@ -7929,8 +7929,28 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
if (ctxt->input ==NULL) break;
if (ctxt->input->buf == NULL)
avail = ctxt->input->length - (ctxt->input->cur - ctxt->input->base);
else
avail = ctxt->input->buf->buffer->use - (ctxt->input->cur - ctxt->input->base);
else {
/*
* If we are operating on converted input, try to flush
* remainng chars to avoid them stalling in the non-converted
* buffer.
*/
if ((ctxt->input->buf->raw != NULL) &&
(ctxt->input->buf->raw->use > 0)) {
int base = ctxt->input->base -
ctxt->input->buf->buffer->content;
int current = ctxt->input->cur - ctxt->input->base;
xmlParserInputBufferPush(ctxt->input->buf, 0, "");
ctxt->input->base = ctxt->input->buf->buffer->content + base;
ctxt->input->cur = ctxt->input->base + current;
ctxt->input->end =
&ctxt->input->buf->buffer->content[
ctxt->input->buf->buffer->use];
}
avail = ctxt->input->buf->buffer->use -
(ctxt->input->cur - ctxt->input->base);
}
if (avail < 1)
goto done;
switch (ctxt->instate) {
......
Supports Markdown
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