From 9308e373844377f0db1f4f0d24d963dbd67c63ba Mon Sep 17 00:00:00 2001 From: "S. Gilles" Date: Fri, 24 Mar 2017 01:35:17 -0400 Subject: lexers: fix perl pattern for horrible regex lines Under presently-not-precise circumstances, regex patterns longer than a screenful can cause first_match_pos to be nil. In this sutation, evaluating `first_match_pos - 1' will be an error, so jump to matchless case. --- lua/lexers/perl.lua | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lua/lexers') diff --git a/lua/lexers/perl.lua b/lua/lexers/perl.lua index 58c121c..b490c7f 100644 --- a/lua/lexers/perl.lua +++ b/lua/lexers/perl.lua @@ -46,6 +46,9 @@ local literal_delimitted2 = P(function(input, index) -- for 2 delimiter sets patt = l.delimited_range(delimiter) end first_match_pos = lpeg.match(patt, input, index) + if not first_match_pos then + return #input + 1 + end final_match_pos = lpeg.match(patt, input, first_match_pos - 1) if not final_match_pos then -- using (), [], {}, or <> notation final_match_pos = lpeg.match(l.space^0 * patt, input, first_match_pos) -- cgit v1.2.3