From: Alexander Shishkin Date: Thu, 25 Feb 2010 15:55:40 +0000 (+0200) Subject: awk: skip whitespace between array name and subscript X-Git-Tag: 1_17_0~451 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d03cd3be241d38e6edbe5329a53b276eeaa7528e;p=oweals%2Fbusybox.git awk: skip whitespace between array name and subscript It is supported in both mawk and gawk and there are actually scripts out there that use this "flexibility". function old new delta next_token 1144 1152 +8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 8/0) Total: 8 bytes Signed-off-by: Alexander Shishkin Signed-off-by: Denys Vlasenko --- diff --git a/editors/awk.c b/editors/awk.c index bc8b0dad1..b9bc01f16 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -1046,7 +1046,7 @@ static uint32_t next_token(uint32_t expected) *(p-1) = '\0'; tc = TC_VARIABLE; /* also consume whitespace between functionname and bracket */ - if (!(expected & TC_VARIABLE)) + if (!(expected & TC_VARIABLE) || (expected & TC_ARRAY)) skip_spaces(&p); if (*p == '(') { tc = TC_FUNCTION; diff --git a/testsuite/awk.tests b/testsuite/awk.tests index 7910c8875..03d464969 100755 --- a/testsuite/awk.tests +++ b/testsuite/awk.tests @@ -64,4 +64,7 @@ testing "awk string cast (bug 725)" \ "0\nnumber\n" \ "" "" +testing "awk handles whitespace before array subscript" \ + "awk 'BEGIN { arr [3] = 1; print arr [3] }'" "1\n" "" "" + exit $FAILCOUNT