aboutsummaryrefslogtreecommitdiffstats
path: root/regex.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-07-02 15:49:42 +0300
committerArnold D. Robbins <arnold@skeeve.com>2010-07-02 15:49:42 +0300
commit483a58b779f2bd6c5fff64c9429a766d33e46a41 (patch)
tree41ee58e21c390c40d90893b277542b309e7d0de7 /regex.c
parent3711eedc1b995eb1926c9ffb902d5d796cacf8d0 (diff)
downloadegawk-483a58b779f2bd6c5fff64c9429a766d33e46a41.tar.gz
egawk-483a58b779f2bd6c5fff64c9429a766d33e46a41.tar.bz2
egawk-483a58b779f2bd6c5fff64c9429a766d33e46a41.zip
Now at 2.03.
Diffstat (limited to 'regex.c')
-rw-r--r--regex.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/regex.c b/regex.c
index 40118055..618a3a9c 100644
--- a/regex.c
+++ b/regex.c
@@ -502,6 +502,16 @@ re_compile_pattern (pattern, size, bufp)
while (1)
{
PATFETCH (c);
+
+ /* If awk, \ escapes a ] when inside [...]. */
+ if ((obscure_syntax & RE_AWK_CLASS_HACK)
+ && c == '\\' && *p == ']')
+ {
+ PATFETCH(c1);
+ b[c1 / BYTEWIDTH] |= 1 << (c1 % BYTEWIDTH);
+ continue;
+ }
+
if (c == ']' && p != p1 + 1) break;
if (*p == '-' && p[1] != ']')
{