From: <fla...@gm...> - 2007-05-18 16:28:46
|
On 5/18/07, Alan Garny <ag...@he...> wrote: > Hi, I have come across a somewhat annoying problem with the XML highlight= er > (as reported by someone else: > http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1695866&grou= p_id=3D32 > 21&atid=3D103221). This generates an exception that reads: "The highlight= er > seems to be in an infinite loop". > > Needless to say that my XML file is fine (unless I am completely mistaken= !), > so I looked at SynEdit's source code and noticed the following bit of cod= e > (starting at line 3293): > > sToken :=3D fHighlighter.GetToken; > // Cooperate with some buggy highlighters... > if sToken =3D '' then > begin > sToken :=3D fHighlighter.GetToken; > if sToken =3D '' then > raise Exception.Create('The highlighter seems to be in an > infinite loop'); > end; > > I really don't know anything about SynEdit's source code, but shouldn't w= e > have something like that to make sure that we don't query the same token > twice in a row? > > sToken :=3D fHighlighter.GetToken; > // Cooperate with some buggy highlighters... > if sToken =3D '' then > begin > fHighlighter.Next; // GET THE NEXT TOKEN > sToken :=3D fHighlighter.GetToken; > if sToken =3D '' then > raise Exception.Create('The highlighter seems to be in an > infinite loop'); > end; > > I have tested that piece of code with some of my XML files and it seems t= o > be working fine, but I would like to make sure that my 'fix' is actually > sound... Anyone? > > Cheers, Alan. You're absolutely correct. I can't imagine how come the call to 'Next' went missing... At first sight I thought the bug reported in the tracker was in the highlighter itself. Thanks for looking into it, I've just commited the fix in CVS. Best regards, Fl=E1vio |