--- parser.c.orig Mon Dec 22 14:35:49 2003 +++ parser.c Mon Dec 22 17:04:08 2003 @@ -1260,6 +1260,21 @@ xmlPopInput(ctxt); \ } while (0) +#define SKIPL(val) do { \ + int skipl; \ + for(skipl=0; skiplinput->cur) == '\n') { \ + ctxt->input->line++; ctxt->input->col = 1; \ + } else ctxt->input->col++; \ + ctxt->nbChars++; \ + ctxt->input->cur++; \ + } \ + if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \ + if ((*ctxt->input->cur == 0) && \ + (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) \ + xmlPopInput(ctxt); \ + } while (0) + #define SHRINK if ((ctxt->progressive == 0) && \ (ctxt->input->cur - ctxt->input->base > 2 * INPUT_CHUNK) && \ (ctxt->input->end - ctxt->input->cur < 2 * INPUT_CHUNK)) \ @@ -9702,7 +9717,7 @@ ctxt->input->cur, XML_PARSER_BIG_BUFFER_SIZE); } - SKIP(XML_PARSER_BIG_BUFFER_SIZE); + SKIPL(XML_PARSER_BIG_BUFFER_SIZE); ctxt->checkIndex = 0; } goto done; @@ -9716,7 +9731,7 @@ ctxt->sax->characters(ctxt->userData, ctxt->input->cur, base); } - SKIP(base + 3); + SKIPL(base + 3); ctxt->checkIndex = 0; ctxt->instate = XML_PARSER_CONTENT; #ifdef DEBUG_PUSH