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 <virtuoso@slind.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
2e73d84c02
commit
d03cd3be24
@ -1046,7 +1046,7 @@ static uint32_t next_token(uint32_t expected)
|
|||||||
*(p-1) = '\0';
|
*(p-1) = '\0';
|
||||||
tc = TC_VARIABLE;
|
tc = TC_VARIABLE;
|
||||||
/* also consume whitespace between functionname and bracket */
|
/* also consume whitespace between functionname and bracket */
|
||||||
if (!(expected & TC_VARIABLE))
|
if (!(expected & TC_VARIABLE) || (expected & TC_ARRAY))
|
||||||
skip_spaces(&p);
|
skip_spaces(&p);
|
||||||
if (*p == '(') {
|
if (*p == '(') {
|
||||||
tc = TC_FUNCTION;
|
tc = TC_FUNCTION;
|
||||||
|
@ -64,4 +64,7 @@ testing "awk string cast (bug 725)" \
|
|||||||
"0\nnumber\n" \
|
"0\nnumber\n" \
|
||||||
"" ""
|
"" ""
|
||||||
|
|
||||||
|
testing "awk handles whitespace before array subscript" \
|
||||||
|
"awk 'BEGIN { arr [3] = 1; print arr [3] }'" "1\n" "" ""
|
||||||
|
|
||||||
exit $FAILCOUNT
|
exit $FAILCOUNT
|
||||||
|
Loading…
Reference in New Issue
Block a user