Denys Vlasenko
1237d627e9
hush: fix this case: echo "SCRIPT" | hush
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-25 19:01:49 +01:00
Denys Vlasenko
46a71dc30c
hush: if !EDITING, do not regenerate prompt for every input char
...
function old new delta
fgetc_interactive 261 258 -3
pseudo_exec_argv 406 399 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-10) Total: -10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-25 18:49:29 +01:00
Lauri Kasanen
6cfec7dd02
mount: Surround syslog.h with the config check
...
This lets bb mount build for limited targets without syslog.h,
as long as the parts using it like NFS are disabled.
Signed-off-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-25 18:15:37 +01:00
Denys Vlasenko
51a471d05d
ash: change "clear ungetc counter on syntax errors" fix to match dash
...
function old new delta
ash_main 1203 1210 +7
raise_exception 39 26 -13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 7/-13) Total: -6 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-24 00:22:24 +01:00
Denys Vlasenko
521220ed1a
hush: fix ^C in INTERACTIVE, !EDITING config
...
function old new delta
refill_HFILE_and_getc 88 170 +82
fgetc_interactive 226 250 +24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 106/0) Total: 106 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 23:44:55 +01:00
Denys Vlasenko
18bcaf374c
hush: revert "make interactive ^C break out of PS2 mode"
...
It made ^C break out of the entire shell, if we aren't in PS2 mode.
Need a better idea.
function old new delta
expand_one_var 2344 2353 +9
syntax_error_unterm_ch 21 29 +8
parse_dollar 817 824 +7
parse_stream 2251 2238 -13
fgetc_interactive 249 227 -22
syntax_error_unterm_str 26 - -26
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 3/2 up/down: 24/-61) Total: -37 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 23:01:18 +01:00
Denys Vlasenko
649acb9e23
hush: fix PS1 prompth in !EDITING config
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 15:29:13 +01:00
Denys Vlasenko
a7b52d26c4
hush: fix fallout from tweaking ${var:START:LEN} code
...
function old new delta
expand_one_var 2344 2353 +9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 12:38:03 +01:00
Denys Vlasenko
93e2a22482
shell: for signal exitcode, use 128 | sig, not 128 + sig - MIPS has signal 128
...
function old new delta
wait_for_child_or_signal 213 214 +1
refill_HFILE_and_getc 89 88 -1
getstatus 97 96 -1
builtin_wait 339 337 -2
checkjobs 187 183 -4
process_wait_result 450 444 -6
waitcmd 290 281 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/6 up/down: 1/-23) Total: -22 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 12:23:21 +01:00
Denys Vlasenko
0ab2dd4f28
hush: fix comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 02:22:08 +01:00
Denys Vlasenko
6297d66eda
factor: fix comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-23 02:03:04 +01:00
Denys Vlasenko
6452c30036
factor: detect squares
...
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>
2020-12-22 20:24:30 +01:00
Denys Vlasenko
96717d9fb4
lineedit: code shrink
...
function old new delta
read_line_input 3171 3157 -14
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 22:50:23 +01:00
Denys Vlasenko
fae7332ebf
lineedit: add a comment about possible use of tcflush()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 21:55:03 +01:00
Denys Vlasenko
00eb23b47a
bc: do not allocate line editing state until needed
...
function old new delta
xc_read_line 324 353 +29
free_line_input_t 34 39 +5
xc_vm_init 656 640 -16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 34/-16) Total: 18 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 21:36:58 +01:00
Andy Shevchenko
e4202df091
modprobe: Add support for modprobe.blacklist=module1,module2,...
...
function old new delta
parse_and_add_kcmdline_module_options - 186 +186
modprobe_main 713 798 +85
do_modprobe 648 451 -197
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 271/-197) Total: 74 bytes
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 21:15:35 +01:00
Denys Vlasenko
07abc7c6f7
hush: deal with FIXMEs for corner cases in parameter expansion
...
function old new delta
expand_one_var 2323 2344 +21
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 10:14:18 +01:00
Denys Vlasenko
901d2c3862
factor: fix typo in undef
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 07:45:08 +01:00
Denys Vlasenko
3e544d6ec7
factor: code shrink
...
function old new delta
factor_main 176 171 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-21 07:22:55 +01:00
Denys Vlasenko
f079f91371
factor: 30% faster trial division (better sieve)
...
function old new delta
packed_wheel - 192 +192
factor_main 108 176 +68
factorize 284 218 -66
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 260/-66) Total: 194 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-20 21:37:29 +01:00
Denys Vlasenko
bb4e32befa
hush: remove one redundant getpid() on every startup
...
function old new delta
hush_main 1151 1147 -4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-20 16:36:00 +01:00
Denys Vlasenko
c8f6c1d775
ping6: add -w/-W NUM to --help
...
function old new delta
packed_usage 33515 33533 +18
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-20 11:25:50 +01:00
Denys Vlasenko
bc2c1b4f86
ping: fix -wN to not think that one packet is always lost
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-20 11:16:32 +01:00
Denys Vlasenko
2124c0ec97
ash: clear ungetc counter on syntax errors
...
function old new delta
raise_exception 26 39 +13
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-19 14:33:02 +01:00
Denys Vlasenko
4152b41183
tftp: fix --help
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-19 00:33:06 +01:00
Denys Vlasenko
ddc6dfdb4d
route: code shrink
...
function old new delta
kw_lookup 84 86 +2
tbl_hash_net_host 15 14 -1
tbl_verb 21 19 -2
tbl_ipvx 104 92 -12
packed_usage 33527 33493 -34
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/4 up/down: 2/-49) Total: -47 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-19 00:07:13 +01:00
Denys Vlasenko
b164cdb854
help text tweaks, mainly expanding one for route
...
function old new delta
packed_usage 33485 33527 +42
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-18 23:33:19 +01:00
Denys Vlasenko
8cc3a744fb
help text: use -P PORT form
...
function old new delta
packed_usage 33502 33491 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-18 22:51:46 +01:00
Denys Vlasenko
a2f18d950a
help text tweaks
...
function old new delta
packed_usage 33570 33502 -68
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-18 04:12:51 +01:00
Denys Vlasenko
15733cb48e
mount: if we race with other loop mount, we forget to close loop dev
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 23:38:06 +01:00
Denys Vlasenko
251e08ffa6
move ADJTIME_PATH define to header files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 20:53:43 +01:00
Denys Vlasenko
a4c5cb2335
traceroute: fix --help text
...
function old new delta
traceroute_init 1151 1153 +2
packed_usage 33568 33570 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 4/0) Total: 4 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 18:17:03 +01:00
Denys Vlasenko
ff4ca18501
traceroute: avoid collecting target local address if !VERBOSE
...
function old new delta
common_traceroute_main 1542 1537 -5
traceroute_init 1151 1101 -50
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-55) Total: -55 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 17:47:49 +01:00
Denys Vlasenko
4bc59a4cf7
mount: fix a race when a free loop device is snatched under us by another mount.
...
function old new delta
set_loop 850 809 -41
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 15:05:14 +01:00
Denys Vlasenko
cd48f07117
mail: launch_helper(): flush stdio before vfork, set G.helper_pid only in parent
...
function old new delta
launch_helper 188 193 +5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 12:55:22 +01:00
Denys Vlasenko
b0e7cb4c3f
mail: deobfuscate launch_helper()
...
13 bytes are not worth the risk of doing something iffy after vfork().
Let's have much clearer code there.
function old new delta
launch_helper 175 188 +13
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 12:51:58 +01:00
Denys Vlasenko
b6237c0657
mail: commonalize send_r_n()
...
function old new delta
send_mail_command 85 55 -30
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 12:34:25 +01:00
Denys Vlasenko
25b2680056
mail: move "opts" from globals
...
function old new delta
popmaildir_main 812 823 +11
sendmail_main 1295 1301 +6
makemime_main 291 288 -3
parse 970 966 -4
reformime_main 107 100 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/3 up/down: 17/-14) Total: 3 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 12:24:50 +01:00
Denys Vlasenko
91e330a53f
shells: a fix for systems without RLIMIT_NICE
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 12:07:54 +01:00
Denys Vlasenko
0723131628
Fixes for Hurd build
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-17 11:22:44 +01:00
Denys Vlasenko
bb15969333
libbb: do not compile selinux_or_die() if !SELINUX
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 23:00:51 +01:00
Denys Vlasenko
39646dce32
build system: make -static-libgcc selectable in config
...
OpenWrt wants this off.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 21:53:05 +01:00
Denys Vlasenko
eb0c2e218c
libbb: introduce and use xsettimeofday()
...
function old new delta
xsettimeofday - 25 +25
rdate_main 274 260 -14
step_time 348 331 -17
set_kernel_timezone_and_clock 119 102 -17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/3 up/down: 25/-48) Total: -23 bytes
text data bss dec hex filename
1020753 559 5052 1026364 fa93c busybox_old
1020708 559 5052 1026319 fa90f busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 21:36:36 +01:00
Denys Vlasenko
d3c36882dc
hwclock: improve --help (-l is a compatible shortcut for --localtime)
...
function old new delta
packed_usage 33605 33568 -37
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 20:55:30 +01:00
Denys Vlasenko
9e262f13c2
hwclock: fix musl breakage of settimeofday(tz)
...
function old new delta
set_kernel_timezone_and_clock - 119 +119
set_kernel_tz - 28 +28
hwclock_main 480 301 -179
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/1 up/down: 147/-179) Total: -32 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 14:00:47 +01:00
Denys Vlasenko
a97a795dcb
lineedit: disable completion and fancy prompts if no shells are selected
...
function old new delta
get_previous_history 51 56 +5
get_next_history 47 52 +5
null_str 1 - -1
beep 10 - -10
bb_msg_unknown 10 - -10
bb_internal_setpwent 24 - -24
remove_chunk 30 - -30
goto_new_line 33 - -33
bb_internal_endpwent 36 - -36
deinit_S 51 - -51
free_tab_completion_data 54 - -54
read_line_input 3171 3114 -57
rewind 68 - -68
add_match 70 - -70
complete_username 77 - -77
quote_special_chars 78 - -78
build_match_prefix 557 - -557
complete_cmd_dir_file 697 - -697
parse_and_put_prompt 823 53 -770
input_tab 926 - -926
------------------------------------------------------------------------------
(add/remove: 0/17 grow/shrink: 2/2 up/down: 10/-3549) Total: -3539 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 11:14:08 +01:00
Denys Vlasenko
1d180cd749
lineedit: use strncmp instead of is_prefixed_with (we know the length)
...
Also: add comments, rename some variables
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 11:00:20 +01:00
Denys Vlasenko
eaced1ec85
lineedit: remove ->path_lookup if ash is not configured
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 10:01:21 +01:00
Ron Yorston
8baa643a34
lineedit: match local directories when searching PATH
...
When tab-completing a command we search PATH if the partial text
doesn't include a slash. Also match subdirectories of the current
directory, in case the user intends to run a binary from one of
them.
function old new delta
complete_cmd_dir_file 894 917 +23
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 23/0) Total: 23 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 09:38:25 +01:00
Ron Yorston
8506dd6730
lineedit: omit directories when tab-completing from PATH
...
Only files should be matched when using PATH for tab-completion.
function old new delta
complete_cmd_dir_file 883 894 +11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 11/0) Total: 11 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-16 09:38:18 +01:00