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