summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2010-01-13 18:03:52 -0800
committerKaz Kylheku <kaz@kylheku.com>2010-01-13 18:03:52 -0800
commitf50d67df2057c2cd1d26668f47bc604338ce33f0 (patch)
tree914ab33a490947a41b72a98d2b7d7450f83d6f0e /ChangeLog
parent1fedfc67446065a4b00eb194505eed5e15851811 (diff)
downloadtxr-f50d67df2057c2cd1d26668f47bc604338ce33f0.tar.gz
txr-f50d67df2057c2cd1d26668f47bc604338ce33f0.tar.bz2
txr-f50d67df2057c2cd1d26668f47bc604338ce33f0.zip
Bugfix: allow unescaped / to be used in regex character classes.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog22
1 files changed, 22 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 00158574..116fc67d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,27 @@
2010-01-13 Kaz Kylheku <kkylheku@gmail.com>
+ Bugfix: allow unescaped / to be used in regex character classes.
+
+ To do this, we no longer make the lexer look for the terminating
+ slash which ends the regex syntax. This is driven by the parser,
+ which calls a special function in the lexer to indicate that
+ the regex parsing is done.
+
+ * parser.h (end_of_regex): New function declared.
+
+ * parser.l (REGCLASS): Unused start condition removed.
+ (grammar): A slash character in the REGEX start condition is now simply
+ returned as an operator token; no popping of the state stack takes
+ place. The scanner stays in REGEX mode.
+ (end_of_regex): New function.
+
+ * parser.y (regex): Call end_of_regex when a regex is successfully
+ scanned through to terminating slash, or if a syntax error occurs.
+ (regchar): Can derive a / terminal now, thus including it in a
+ regex character class.
+
+2010-01-13 Kaz Kylheku <kkylheku@gmail.com>
+
* parser.y (precedence): bugfix: character classes like this [^*]
being treated as a non-complemented set of two characters.