diff options
author | Rob Landley | 2005-06-07 02:43:52 +0000 |
---|---|---|
committer | Rob Landley | 2005-06-07 02:43:52 +0000 |
commit | ed830e8693941b8e54869ef4e68353ca2d71224e (patch) | |
tree | 33bdff8ca5390fb4be5ff64815b170d151f19517 /editors/awk.c | |
parent | f3133c414989a1409d79db43a426f122dc06cbed (diff) | |
download | busybox-ed830e8693941b8e54869ef4e68353ca2d71224e.zip busybox-ed830e8693941b8e54869ef4e68353ca2d71224e.tar.gz |
Patch from Dmitry Zakharov:
Charlie Brady wrote:
> Here's another awk parsing problem - unary post increment - pre is fine:
>
>bash-2.05a$ echo 2,3 | gawk -F , '{ $2++ }'
>bash-2.05a$ echo 2,3 | /tmp/busybox/busybox awk -F , '{ $2++ }'
>awk: cmd. line:1: Unexpected token
>
Here's a fix for this. There is another problem with constructions like
"print (A+B) ++C", I don't
know whether somebody uses such constructions (fixing both these
problems would require very
serious change in awk code).
Diffstat (limited to 'editors/awk.c')
-rw-r--r-- | editors/awk.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/editors/awk.c b/editors/awk.c index c1cb2a2..ed8b0f2 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -1084,7 +1084,7 @@ static node *parse_expr(unsigned long iexp) { cn->a.n = vn; xtc = TC_OPERAND | TC_UOPPRE | TC_REGEXP; if (tc & (TC_OPERAND | TC_REGEXP)) { - xtc = TC_UOPPRE | TC_BINOP | TC_OPERAND | iexp; + xtc = TC_UOPPRE | TC_UOPPOST | TC_BINOP | TC_OPERAND | iexp; /* one should be very careful with switch on tclass - * only simple tclasses should be used! */ switch (tc) { @@ -1101,7 +1101,6 @@ static node *parse_expr(unsigned long iexp) { cn->info |= xS; cn->r.n = parse_expr(TC_ARRTERM); } - xtc = TC_UOPPOST | TC_UOPPRE | TC_BINOP | TC_OPERAND | iexp; break; case TC_NUMBER: |