From 3c2d939fd99704b33775f7096c49bb6fa734ad4d Mon Sep 17 00:00:00 2001 From: Colomban Wendling Date: Wed, 3 Aug 2016 17:52:40 +0200 Subject: Bug [#1849]: LexHTML: Fix resuming at a script start The lexer can't handle getting out of some states, so make sure never to start in any of them. --- lexers/LexHTML.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lexers/LexHTML.cxx') diff --git a/lexers/LexHTML.cxx b/lexers/LexHTML.cxx index 4948d00d5..bd14534d4 100644 --- a/lexers/LexHTML.cxx +++ b/lexers/LexHTML.cxx @@ -610,6 +610,17 @@ static void ColouriseHyperTextDoc(Sci_PositionU startPos, Sci_Position length, i } styler.StartAt(startPos); + /* Nothing handles getting out of these, so we need not start in any of them. + * As we're at line start and they can't span lines, we'll re-detect them anyway */ + switch (state) { + case SCE_H_QUESTION: + case SCE_H_XMLSTART: + case SCE_H_XMLEND: + case SCE_H_ASP: + state = SCE_H_DEFAULT; + break; + } + Sci_Position lineCurrent = styler.GetLine(startPos); int lineState; if (lineCurrent > 0) { -- cgit v1.2.3