aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2023-04-19 14:51:26 +1000
committerSteve Bennett <steveb@workware.net.au>2023-04-19 14:54:37 +1000
commitfcbb4499a6b46ef69e7a95da53e30796e20817f0 (patch)
tree2fac1de233b74ab5c3a2a8248ccfb5f6d52787c8
parentea285785b27eafba908630c774404c28e01b6de9 (diff)
downloadjimtcl-fcbb4499a6b46ef69e7a95da53e30796e20817f0.zip
jimtcl-fcbb4499a6b46ef69e7a95da53e30796e20817f0.tar.gz
jimtcl-fcbb4499a6b46ef69e7a95da53e30796e20817f0.tar.bz2
regexp: fix incorrect check for invalid escape sequence at end of charset
Fixes #259 Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jimregexp.c2
-rw-r--r--tests/regexp.test4
2 files changed, 5 insertions, 1 deletions
diff --git a/jimregexp.c b/jimregexp.c
index 0b6ccf6..136b0c0 100644
--- a/jimregexp.c
+++ b/jimregexp.c
@@ -774,7 +774,7 @@ static int regatom(regex_t *preg, int *flagp)
preg->err = REG_ERR_NULL_CHAR;
return 0;
}
- if (start == '\\' && *pattern == 0) {
+ if (end == '\\' && *pattern == 0) {
preg->err = REG_ERR_INVALID_ESCAPE;
return 0;
}
diff --git a/tests/regexp.test b/tests/regexp.test
index 2c91ac7..9793038 100644
--- a/tests/regexp.test
+++ b/tests/regexp.test
@@ -758,4 +758,8 @@ test reg-31.2 {invalid digit check in class} -body {
regexp {[[:digit:\0]} 1
} -returnCodes error -result {couldn't compile regular expression pattern: brackets [] not balanced}
+test reg-31.3 {invalid trailing backslash} -body {
+ regexp "\[abc\\" a
+} -returnCodes error -result {couldn't compile regular expression pattern: invalid escape \ sequence}
+
testreport