summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--parser.l5
2 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b3ecc3a1..9cbb1bb3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2014-06-05 Kaz Kylheku <kaz@kylheku.com>
+ * parser.l: Adding an explicit lexical rule to
+ catch backslashes occurring within a regex, not followed by a
+ character. This can happen in dynamically parsed regexes
+ such as "abc\\".
+
+2014-06-05 Kaz Kylheku <kaz@kylheku.com>
+
* parser.l (yylex_destroy): Only rely on the FLEX_ version
numbers if they are defined. In a newer flex, they are prefixed
by YY_.
diff --git a/parser.l b/parser.l
index a49e43d5..fa3c88cb 100644
--- a/parser.l
+++ b/parser.l
@@ -751,6 +751,11 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U}
return REGCHAR;
}
+<REGEX>[\\] {
+ yyerrprepf(lit("dangling backslash in regex"), nao);
+ return ERRTOK;
+}
+
<REGEX>{UANYN} {
wchar_t buf[8];
utf8_from(buf, yytext);