From 2c8fe012ef1ff6e0613480dd182dec099aa9636e Mon Sep 17 00:00:00 2001 From: Aron Xu Date: Sun, 9 Jun 2013 00:17:44 +0800 Subject: Imported Upstream version 2.9.1 --- HTMLparser.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'HTMLparser.c') diff --git a/HTMLparser.c b/HTMLparser.c index a533f37..dd0c1ea 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -3561,7 +3561,7 @@ htmlCheckEncodingDirect(htmlParserCtxtPtr ctxt, const xmlChar *encoding) { */ processed = ctxt->input->cur - ctxt->input->base; xmlBufShrink(ctxt->input->buf->buffer, processed); - nbchars = xmlCharEncInput(ctxt->input->buf); + nbchars = xmlCharEncInput(ctxt->input->buf, 1); if (nbchars < 0) { htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, "htmlCheckEncoding: encoder error\n", @@ -6054,13 +6054,16 @@ htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size, if ((in->encoder != NULL) && (in->buffer != NULL) && (in->raw != NULL)) { int nbchars; + size_t base = xmlBufGetInputBase(in->buffer, ctxt->input); + size_t current = ctxt->input->cur - ctxt->input->base; - nbchars = xmlCharEncInput(in); + nbchars = xmlCharEncInput(in, terminate); if (nbchars < 0) { htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, "encoder error\n", NULL, NULL); return(XML_ERR_INVALID_ENCODING); } + xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current); } } } -- cgit v1.2.3