Brian Foley
1c42c18e96
awk: Fix overly permissive func arg list parsing
...
It allows things like 'func f(a b)' and 'func f(a,)' which GNU awk forbids.
function old new delta
parse_program 327 367 +40
chain_expr 40 67 +27
parse_expr 891 915 +24
EMSG_TOO_FEW_ARGS 30 18 -12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 91/-12) Total: 79 bytes
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21 12:59:19 +01:00
Brian Foley
08a514c097
awk: Syntax error if delete isn't given an arg.
...
Unlike exit and return, delete strictly requires an arg, and derefs a
null pointer if executed without one.
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21 12:55:49 +01:00
Brian Foley
dac15a10ac
awk: Guard pointer chasing when parsing ternary expressions.
...
Avoids an uninit pointer deref for some malformed ternary exprs.
Add a test that would crash in busybox before this fix.
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21 12:55:49 +01:00
Denys Vlasenko
2454e678cb
awk: do not allow $(-1)
...
function old new delta
EMSG_NEGATIVE_FIELD - 25 +25
evaluate 3390 3403 +13
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 38/0) Total: 38 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-23 10:53:18 +02:00
Denys Vlasenko
6f4a785bd1
awk: fix 'delete array[var--]' decrementing var twice
...
function old new delta
evaluate 3395 3390 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-01-07 01:19:08 +01:00
Brian Foley
61d5997b58
awk: fix segfault on for loop syntax error
...
Parsing "for()" segfaults as awk fails to find loop iteration expressions.
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-10-24 02:09:56 +02:00
Denys Vlasenko
28b00ce6ff
awk: support "length" form of "length()". Closes 8371
...
function old new delta
parse_expr 805 848 +43
tokenlist 447 448 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-02 02:41:39 +02:00
Denys Vlasenko
5f8daefb83
awk: fix handling of "if ... break ; else ..." - closes 7226
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-26 16:40:28 +02:00
Denys Vlasenko
198b02f7dd
fix failures found by randomconfig builds
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-12-31 23:22:36 +01:00
Denys Vlasenko
bd0e221620
awk: fix a bug in argc counting in recent change
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-21 15:09:55 +01:00
Denys Vlasenko
7985bc109e
awk: fix length(array)
...
function old new delta
evaluate 3526 3548 +22
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-10-12 04:51:54 +02:00
Bernhard Reutner-Fischer
a060a1ad96
awk: Fix handling of functions with empty body
...
ammend b79a0fef99
to properly
handle functions defined in another scope.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-07-31 21:51:14 +02:00
Denys Vlasenko
b855460adc
awk.tests: add test for recent large integer fix
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-22 11:49:06 +02:00
Bernhard Reutner-Fischer
b79a0fef99
awk: Fix handling of functions with empty body
...
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-03-13 09:47:07 +01:00
Denys Vlasenko
df8066a78c
awk: fix FS assignment behavior. Closes 5108
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-07-11 01:27:15 +02:00
Denys Vlasenko
ea664dde87
awk: make -F STR interpret escape sequences. Closes 5126
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-22 18:41:01 +02:00
Tanguy Pruvot
0a393cf7da
testsuite: some more awk tests related to conditions
...
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-11 10:33:45 +02:00
Denys Vlasenko
7b46d11582
awk: fix a SEGV
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-09-11 00:30:56 +02:00
Denys Vlasenko
6a0d7490ea
awk: fix segfault on closing non-opened file
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-23 21:02:15 +02:00
Denys Vlasenko
d527e0c81d
awk: 00.123 is not a octal constant; neither is 009.123. fixing this
...
function old new delta
my_strtod 80 113 +33
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-10-05 13:22:11 +02:00
Denys Vlasenko
0ef64bdb40
*: make GNU licensing statement forms more regular
...
This change retains "or later" state! No licensing _changes_ here,
only form is adjusted (article, space between "GPL" and "v2" and so on).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-16 20:14:46 +02:00
Denys Vlasenko
bfa1b2e8e8
randomtest fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-05-11 03:53:57 +02:00
Denys Vlasenko
8e3aff0ce0
more randomconfig testsuite fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-05-10 11:00:11 +02:00
Denys Vlasenko
e3d90a90d4
randomconfig testsuite fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-05-10 05:53:16 +02:00
Denys Vlasenko
90f19fa468
awk: add two tests we currently fail
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-11 08:27:53 +01:00
Denys Vlasenko
3cb60c3973
awk: fix the case where nested "for" loops with the same variable misbehave
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-10 19:20:32 +01:00
Alexander Shishkin
d03cd3be24
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>
2010-02-26 08:48:56 +01:00
Denys Vlasenko
1284774d60
awk: fix an incorrect casting to string (bug 725). -44 bytes.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-30 01:15:04 +01:00
Mike Frysinger
caa79406aa
tests: fix POSIX shell source style
...
The source command does not search $PWD, and bash recently fixed itself to
follow this behavior for /bin/sh.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-11-04 18:41:22 -05:00
Denis Vlasenko
67b5eeb933
awk: fix long field separators case. By Ian Wienand (ianw AT vmware.com)
2009-04-12 13:54:13 +00:00
Denis Vlasenko
7a6766428e
awk: fix compat issue found by gpm build
...
function old new delta
as_regex 105 131 +26
hash_find 247 233 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 26/-14) Total: 12 bytes
2009-03-15 22:20:31 +00:00
Denis Vlasenko
41d5ebee17
awk: in BEGIN section $0 should be "", not "0".
2009-01-25 01:00:15 +00:00
Denis Vlasenko
a2e1eea189
awk: improve nadling of negative numbers in bitwise ops;
...
fix handling of octal costants. add test for it
function old new delta
getvar_i_int - 93 +93
my_strtod - 84 +84
qrealloc 33 36 +3
getvar_i 99 95 -4
next_token 979 919 -60
evaluate 6359 5627 -732
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/3 up/down: 180/-796) Total: -616 bytes
2008-09-02 09:00:23 +00:00
Denis Vlasenko
66496d75a7
build system: echo and test features may be enabled
...
even if these applets are enabled as ash builtins only
testsuite: add some awk tests
2008-08-29 08:37:07 +00:00
Denis Vlasenko
bb13079c8e
comm: almost total rewrite; add testsuite
...
function old new delta
writeline 128 125 -3
comm_main 540 239 -301
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-304) Total: -304 bytes
2008-07-15 06:45:14 +00:00
Denis Vlasenko
3bb2bbd684
awk: fix a case with multiple -f options. simplify -f file reading.
...
function old new delta
parse_expr 833 841 +8
qrealloc 33 36 +3
next_input_file 203 198 -5
afopen 22 - -22
ftello 41 - -41
ftell 41 - -41
__GI_ftell 41 - -41
awk_main 1002 944 -58
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 2/2 up/down: 11/-208) Total: -197 bytes
text data bss dec hex filename
804232 610 6804 811646 c627e busybox_old
804120 610 6804 811534 c620e busybox_unstripped
2008-07-01 01:57:36 +00:00
Denis Vlasenko
960eca66b5
awk: actually do "svn add" for testsuite
2007-07-18 18:33:18 +00:00