[PATCH] awk: skip whitespace between array name and subscript
Alexander Shishkin
virtuoso at slind.org
Thu Feb 25 15:55:40 UTC 2010
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 <virtuoso at slind.org>
---
editors/awk.c | 2 +-
testsuite/awk.tests | 3 +++
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/editors/awk.c b/editors/awk.c
index bc8b0da..b9bc01f 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 7910c88..03d4649 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
--
1.6.3.3
More information about the busybox
mailing list