Re: [xml] CDATA sections do not count line numbers via SAX2 API



On Mon, 22 Dec 2003 11:29:22 -0500, Daniel Veillard <veillard redhat com> wrote:

  Column doesn't work. 

That's what I thought - has never worked.

Wrt the line number the value are the same so the
locator probably use xmlSAX2GetLineNumber() internally.
  xmllint get them correctly, the line information is extracted from 
ctxt->input->line and seems to work okay ...xmlSAX2GetLineNumber()
also return ctxt->input->line, so I would think your code doesn't call
xmlSAX2GetLineNumber() at the right time,

I call it right before the fprintf that prints the error output

... or there is some uncommon 
parsing options being used which break line counting.

I don't set any options.  I even deleted the expand entities
and that made no difference.  I set the callbacks for errors
and warnings, and assign the contexts for those callbacks.

Anyway, having another attempt at debugging I noticed that
after dealing with the cdata, the following is at parser.c line 9719:
                    SKIP(base + 3);.

where base is returned from  xmlParseLookupSequence
looking for the closing ]]>

Earlier on it says
 *   SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
 *           strings without newlines within the parser.

However, that SKIP does (may) contain newlines.  There's
another nearby one at 9705 that might also be suspicious.

Dave



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]