| Age | Commit message (Collapse) | Author | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_vm_process                                      6464    6498     +34
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
The command 'nl -b n' should output no line numbers, just some
spaces as a placeholder followed by the actual file content.
Add tests for line numbering by cat and nl.  The correct results
were obtained from coreutils.
function                                             old     new   delta
print_numbered_lines                                 152     157      +5
.rodata                                           182456  182453      -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 5/-3)                Total: 2 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Treat the output of printf as binary rather than a null-terminated
string so that NUL characters can be output.
This is considered to be a GNU extension, though it's also available
in mawk and FreeBSD's awk.
function                                             old     new   delta
evaluate                                            3487    3504     +17
awk_printf                                           504     519     +15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 32/0)               Total: 32 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
xc_vm_init                                           640     682     +42
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
If we have a square, the speedup can be extremely large
(in best case example below, it's ~40000 times faster):
$ time ./busybox_old factor 18446743988964486098
18446743988964486098: 2 3037000493 3037000493
real	0m4.246s
$ time ./busybox factor 18446743988964486098
18446743988964486098: 2 3037000493 3037000493
real	0m0.000s
function                                             old     new   delta
isqrt_odd                                              -      57     +57
print_w                                                -      36     +36
factorize                                            218     236     +18
print_h                                                -       7      +7
factorize_numstr                                      65      72      +7
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 2/0 up/down: 125/0)             Total: 125 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
awk_split                                            484     553     +69
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
bb_dump_dump                                        1523    1520      -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
bb_dump_dump                                        1497    1523     +26
xxd_main                                             459     466      +7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 33/0)               Total: 33 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
process_stdin_with_replace                           165     204     +39
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
This is a recent change in GNU grep as well (after 3.1)
function                                             old     new   delta
grep_file                                           1215    1228     +13
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
sysctl_act_recursive                                 165     179     +14
sysctl_act_on_setting                                467     471      +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 18/0)               Total: 18 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Prior to the patch, both -f and --first-only are in all cases either
no-op or ignored.
Without --tabs, --first-only is the default so specifying it is a no-op.
With --tabs, --all is implied, and --first-only is intended to reset this.
function                                             old     new   delta
expand_main                                          690     694      +4
Signed-off-by: Mark Edgar <medgar123@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
parse_expr                                           887     896      +9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
From POSIX.1-2008:
	The pattern_list's value shall consist of one or more patterns
	separated by <newline> characters;
As such, given patterns need to be split at newline characters. Without
doing so, busybox grep will interpret the newline as part of the pattern
which is not in accordance with POSIX.
See also: https://bugs.busybox.net/show_bug.cgi?id=12721
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Grep currently special-cased empty pattern file to be the same as
pattern file with one empty line (empty pattern). That does mirror how
GNU grep behaves, except when -x is provided. In that case .* pattern
needs to be used instead.
Signed-off-by: Gray Wolf <wolf@wolfsden.cz>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Since commit 1ff7002b1 (xargs: fix handling of quoted arguments, closes
11441) the -n option hasn't worked properly:
   $ echo 1 2 3 | xargs -n 1 echo
   1
   2
   3
   $
Because state is now remembered between calls to process_stdin() it's
necessary to update the state before any premature return.
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
next_token                                           808     831     +23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
As reported in bug 11441 when presented with a large number of quoted
arguments xargs can return 'argument line too long':
   seq 10000 29999 | sed -e 's/^/"/' -e 's/$/"/' | busybox xargs echo
This happens because the variant of process_stdin() which handles quoted
arguments doesn't preserve state between calls.  If the allowed number
of characters is exceeded part way through a quoted argument the next
call to process_stdin() incorrectly treats the terminating quote as a
starting quote, thus quoting all of the argument separators.
function                                             old     new   delta
process_stdin                                        274     303     +29
xargs_main                                           731     745     +14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 43/0)               Total: 43 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
bc_num_cmp                                           249     259     +10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
xc_program_print                                     712     735     +23
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_vm_process                                      6884    6891      +7
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
This matches the behaviour of both GNU dc (as specified in
its man page), and BSD dc (where stack_popstring() pops
only if the head is a string.)
Add a couple of tests to verify this behavior.
function                                             old     new   delta
zxc_vm_process                                      6882    6884      +2
Signed-off-by: Brian Foley <bpfoley@google.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
process_files                                       2235    2246     +11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
We found out that busybox -x -v is a bit broken:
ari@ari-thinkpad:~/busybox$ echo '  aa bb cc' | ./busybox grep -x -e 'aa.*' -e '.*bb.*'
  aa bb cc
ari@ari-thinkpad:~/busybox$ echo '  aa bb cc' | ./busybox grep -x -v -e 'aa.*' -e '.*bb.*'
ari@ari-thinkpad:~/busybox$ echo '  aa bb cc' | ./busybox grep -x -e '.*aa.*' -e 'bb.*'
  aa bb cc
ari@ari-thinkpad:~/busybox$ echo '  aa bb cc' | ./busybox grep -x -v -e '.*aa.*' -e 'bb.*'
  aa bb cc
Last one is wrong.
This patch fixes the issue by making sure that the variable 'found'
never makes a transition from 1 to 0, as this would mean that
grep previously found a match on this input line.
Signed-off-by: Ari Sundholm <ari@tuxera.com>
Signed-off-by: Niko Vähäsarja <niko@tuxera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_program_popResultAndCopyToVar                    298     493    +195
bc_vec_pushIndex                                       -      75     +75
zxc_vm_process                                       859     928     +69
xc_program_dereference                                 -      66     +66
bc_vec_npush                                           -      65     +65
zbc_num_s                                            239     249     +10
zxc_program_num                                     1024    1032      +8
zbc_num_divmod                                       150     156      +6
xc_program_search                                    143     146      +3
zxc_program_assign                                   392     389      -3
zdc_program_execStr                                  520     517      -3
xc_program_pushVar                                   198     195      -3
zxc_program_exec                                    4101    4092      -9
zbc_program_call                                     318     308     -10
zbc_func_insert                                      120     104     -16
zbc_parse_stmt_possibly_auto                        1460    1439     -21
bc_vec_push                                           53      12     -41
xc_parse_pushIndex                                    61      18     -43
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 6/9 up/down: 497/-149)          Total: 348 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
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>
 | 
 | 
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>
 | 
 | 
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>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
This removes DAEMON_DOUBLE_FORK flag from bb_daemonize_or_rexec(),
as SSD was the only user.
Also includes fix for -S: now works without -a and -x,
does not print pids
(compat with "start-stop-daemon (OpenRC) 0.34.11 (Gentoo Linux)").
function                                             old     new   delta
start_stop_daemon_main                              1018    1084     +66
add_interface                                         99     103      +4
fail_hunk                                            139     136      -3
bb_daemonize_or_rexec                                205     183     -22
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 70/-25)             Total: 45 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
xc_program_print                                       -     689    +689
zxc_vm_process                                       814     869     +55
zxc_program_exec                                    4098    4116     +18
zxc_program_assign                                   385     392      +7
bc_result_free                                        43      46      +3
zxc_program_binOpPrep                                243     245      +2
zdc_program_execStr                                  518     520      +2
zxc_program_print                                    683       -    -683
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 6/0 up/down: 776/-683)           Total: 93 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_program_exec                                    4087    4098     +11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zdc_parse_expr                                       470     479      +9
zxc_vm_process                                       839     814     -25
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 9/-25)             Total: -16 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zbc_parse_expr                                        24    1865   +1841
zbc_parse_stmt_possibly_auto                        1425    1413     -12
bc_parse_expr_empty_ok                              1843       -   -1843
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 1841/-1855)        Total: -14 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
static.esc                                             -       9      +9
zxc_program_print                                    681     683      +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 11/0)               Total: 11 bytes
   text	   data	    bss	    dec	    hex	filename
 979144	    485	   7296	 986925	  f0f2d	busybox_old
 979062	    485	   7296	 986843	  f0edb	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
bc_parse_expr_empty_ok                              1764    1843     +79
bc_error_at                                            -      62     +62
bc_parse_inst_isLeaf                                   -      30     +30
zbc_func_insert                                      100     120     +20
bc_error_bad_function_definition                       -      10     +10
bc_error_bad_assignment                                -      10     +10
zxc_lex_next                                        1608    1614      +6
ok_in_expr                                            30       -     -30
zxc_vm_process                                       874     839     -35
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 3/1 up/down: 217/-65)           Total: 152 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_program_num                                      995    1018     +23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_program_num                                      990    1020     +30
zxc_lex_number                                       172     202     +30
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 60/0)               Total: 60 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
function                                             old     new   delta
zxc_lex_next                                        1573    1608     +35
xc_parse_pushIndex                                    58      56      -2
xc_program_index                                      71      63      -8
zxc_program_num                                     1022     990     -32
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 35/-42)             Total: -7 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 | 
 | 
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
 |