summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2023-12-22 10:55:51 +0200
committerArnold D. Robbins <arnold@skeeve.com>2023-12-22 10:55:51 +0200
commit1b2042ee0556dfbdfb0ed6132c1f4e7bfc915dbf (patch)
tree300d0f288812d35be4853d973ab3dbce0e57126e
parent8c6674cb1c2b28e69bdb3a3897aa4584c25afcc4 (diff)
downloadgawk-1b2042ee0556dfbdfb0ed6132c1f4e7bfc915dbf.tar.gz
Fixes after drop 7 (add error messages).
-rw-r--r--awkgram.c2
-rw-r--r--awkgram.y2
-rw-r--r--re.c2
-rw-r--r--test/lintwarn.awk2
-rw-r--r--test/lintwarn.ok2
-rw-r--r--test/regexpbad.ok2
6 files changed, 5 insertions, 7 deletions
diff --git a/awkgram.c b/awkgram.c
index 1bb0000..74964ad 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -2383,7 +2383,7 @@ yyreduce:
if (len == 0)
lintwarn_ln(yyvsp[0]->source_line,
_("regexp constant `//' looks like a C++ comment, but is not"));
- else if (re[0] == '*' && re[len-1] == '*')
+ else if (use_gnu_matchers && re[0] == '*' && re[len-1] == '*')
/* possible C comment */
lintwarn_ln(yyvsp[0]->source_line,
_("regexp constant `/%s/' looks like a C comment, but is not"), re);
diff --git a/awkgram.y b/awkgram.y
index 5f0697b..50918a2 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -562,7 +562,7 @@ regexp
if (len == 0)
lintwarn_ln($3->source_line,
_("regexp constant `//' looks like a C++ comment, but is not"));
- else if (re[0] == '*' && re[len-1] == '*')
+ else if (use_gnu_matchers && re[0] == '*' && re[len-1] == '*')
/* possible C comment */
lintwarn_ln($3->source_line,
_("regexp constant `/%s/' looks like a C comment, but is not"), re);
diff --git a/re.c b/re.c
index 6c773a8..91c6892 100644
--- a/re.c
+++ b/re.c
@@ -328,7 +328,7 @@ make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal)
} else
rp->dfareg = NULL;
} else {
- int flags = MINRX_REG_EXTENDED | MINRX_REG_ESCAPE_BRACK;
+ int flags = MINRX_REG_EXTENDED | MINRX_REG_BRACK_ESCAPE | MINRX_REG_BRACE_COMPAT;
int ret;
if (ignorecase)
diff --git a/test/lintwarn.awk b/test/lintwarn.awk
index cca53d8..eaf1ebd 100644
--- a/test/lintwarn.awk
+++ b/test/lintwarn.awk
@@ -26,7 +26,7 @@ BEGIN {
a
f(/pqr/)
//
- /* */
+ # /* */ # not good with minrx
}
END {
getline
diff --git a/test/lintwarn.ok b/test/lintwarn.ok
index 5a80599..b30a082 100644
--- a/test/lintwarn.ok
+++ b/test/lintwarn.ok
@@ -24,8 +24,6 @@ gawk: lintwarn.awk:26: warning: statement has no effect
gawk: lintwarn.awk:27: warning: regexp constant for parameter #1 yields boolean value
gawk: lintwarn.awk:28: warning: regexp constant `//' looks like a C++ comment, but is not
gawk: lintwarn.awk:28: warning: statement has no effect
-gawk: lintwarn.awk:29: warning: regexp constant `/* */' looks like a C comment, but is not
-gawk: lintwarn.awk:29: warning: statement has no effect
gawk: lintwarn.awk:32: warning: non-redirected `getline' undefined inside END action
gawk: lintwarn.awk:34: error: function `zz': parameter #2, `aa', duplicates parameter #1
gawk: lintwarn.awk:38: warning: `include' is a gawk extension
diff --git a/test/regexpbad.ok b/test/regexpbad.ok
index f9b90b2..c33d81f 100644
--- a/test/regexpbad.ok
+++ b/test/regexpbad.ok
@@ -1,2 +1,2 @@
-gawk: regexpbad.awk:1: error: Invalid regular expression: /^[^[]\x5b/
+gawk: regexpbad.awk:1: error: unbalanced [: /^[^[]\x5b/
EXIT CODE: 1