aboutsummaryrefslogtreecommitdiff
path: root/examples (unfollow)
Commit message (Collapse)AuthorFilesLines
2025-08-09shells: fix a typo in var_backslash1.tests, expand it while at itDenys Vlasenko4-8/+12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-09ash: eval: Always set exitstatus in evaltreeDenys Vlasenko1-6/+7
Upstream commit: Date: Tue, 6 Dec 2022 16:49:14 +0800 eval: Always set exitstatus in evaltree There is no harm in setting exitstatus unconditionally in evaltree. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-09ash: options: Do not set commandname in procargsDenys Vlasenko1-3/+2
Upstream commit: Date: Mon Feb 25 12:49:20 2019 +0800 options: Do not set commandname in procargs We set commandname in procargs when we don't have to. This results in a duplicated output of arg0 when an error occurs. function old new delta ash_main 1256 1236 -20 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-09ash: jobs: drop unused node parameter in makejob()Denys Vlasenko1-6/+6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-09shells: add testsuite itemDenys Vlasenko4-0/+124
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-08ash: reuse vstype_suffix[] in debug code, shrink itDenys Vlasenko1-35/+37
function old new delta vstype_suffix - 39 +39 static.vstype 42 - -42 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/0 up/down: 39/-42) Total: -3 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-07ash: fix cmdputs - was showing some variable forms incorrectlyDenys Vlasenko1-20/+35
function old new delta cmdputs 402 418 +16 static.vstype 48 42 -6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 16/-6) Total: 10 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-07hush: smarter optimization for not-globbing [ and [[Denys Vlasenko1-37/+23
function old new delta o_save_ptr 176 167 -9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-07ash: fix heredoc.tests broken by last commitDenys Vlasenko1-15/+19
function old new delta readtoken1 3053 3095 +42 xxreadtoken 215 212 -3 expandstr 255 252 -3 parseheredoc 148 127 -21 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/3 up/down: 42/-27) Total: 15 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-07ash,hush: fix corner cases with backslash-newlines in heredocsDenys Vlasenko14-5/+44
function old new delta fetch_heredocs 477 485 +8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-07hush: optimization: do not glob words "[" and "[["Denys Vlasenko1-0/+40
function old new delta glob_needed 71 86 +15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-06showkey: make -a, -k, -s mutually exclusiveDenys Vlasenko1-2/+2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-06top,pmap: speed up /smaps parsingDenys Vlasenko3-24/+49
function old new delta procps_read_smaps 515 529 +14 procps_get_maps 685 665 -20 .rodata 105847 105820 -27 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 14/-47) Total: -33 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-06libbb: fix too-narrow variable in procps_read_smaps() causing incorrect sizesDenys Vlasenko1-1/+1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-06libbb: make read_cmdline() replace chars 1..31 with '?', not spaceDenys Vlasenko2-7/+11
Space was too inconspicuous on output Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-06top: simplify command line readingDenys Vlasenko2-18/+26
function old new delta cmdline_to_line_buf_and_print - 48 +48 read_cmdline 326 327 +1 display_topmem_process_list 523 505 -18 display_process_list 1186 1161 -25 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/2 up/down: 49/-43) Total: 6 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-06top: disentangle printing logicDenys Vlasenko1-83/+97
function old new delta print_line_buf - 78 +78 print_line_bold - 50 +50 top_main 1043 1091 +48 handle_input 708 714 +6 do_stats 186 192 +6 .rodata 115543 115526 -17 display_topmem_process_list 748 523 -225 display_process_list 1432 1186 -246 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 3/3 up/down: 188/-488) Total: -300 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: consistently NOT use the last column of the displayDenys Vlasenko1-56/+51
function old new delta .rodata 115537 115543 +6 top_main 1047 1043 -4 display_process_list 1459 1432 -27 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 6/-31) Total: -25 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05pmap: increase max handled command line length to 4kDenys Vlasenko1-5/+7
function old new delta procps_get_maps 181 779 +598 read_smaps 563 - -563 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/0 up/down: 598/-563) Total: 35 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top,pmap: do not use common code for reading /proc/PID/smapsDenys Vlasenko4-131/+178
The logic is in fact quite far from common. While at it, stop accounting "---p" mappings as mapped (e.g. VSZ in top). Nothing is mapped there (why would kernel waste RAM to map pages which can't be accessed?). function old new delta read_smaps - 562 +562 read_cmdline 315 326 +11 print_smaprec 97 101 +4 procps_scan 1219 1211 -8 .rodata 115541 115533 -8 skip_whitespace_if_prefixed_with 25 - -25 procps_read_smaps 864 577 -287 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 2/3 up/down: 577/-328) Total: 249 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: improve response time to keyboard inputDenys Vlasenko1-14/+27
function old new delta handle_input 674 708 +34 top_main 1019 1047 +28 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 62/0) Total: 62 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: reduce flicker: redraw screen with "clear to EOL" commands, not one ↵Denys Vlasenko1-14/+20
"clear screen" function old new delta display_topmem_process_list 680 748 +68 display_process_list 1403 1459 +56 .rodata 115512 115541 +29 top_main 1014 1019 +5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 158/0) Total: 158 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: make uppercase 'S' walk topmem in opposite directionDenys Vlasenko1-1/+8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: show RSS instead of VSF, virtual mapped size is often meaninglessDenys Vlasenko1-15/+15
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: fix display of very large VSZDenys Vlasenko2-5/+37
function old new delta display_process_list 1366 1403 +37 handle_input 628 636 +8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 45/0) Total: 45 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-05top: do not rescan processes on second 's'Denys Vlasenko1-1/+3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-04libbb: simplify concat_path_file()Denys Vlasenko1-2/+2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-04libbb: much faster concat_path_file()Denys Vlasenko3-2/+77
function old new delta concat_path_file 68 127 +59 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03shell: typo and whitespace fixes, no code changesDenys Vlasenko2-16/+2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: fix memory leak caused by compiler optimizing out a storeDenys Vlasenko2-25/+84
function old new delta generate_stream_from_string 222 232 +10 setup_heredoc 329 330 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 11/0) Total: 11 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: disentangle interactiveness/job_control setup codeDenys Vlasenko1-79/+67
...and discover that we can do away with 1-3 initialization syscalls. function old new delta hush_main 1152 1146 -6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: fix build failure if !CONFIG_HUSH_JOBDenys Vlasenko1-2/+2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: make NORETURN declarations lees verbose, no code changesDenys Vlasenko1-22/+6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: do not save history on xfunc error, it's unsafeDenys Vlasenko1-47/+37
Also, make second calls to install_special_sighandlers() less haphazard. It's not a fix for anything, but looking more organized now. function old new delta fflush_restore_ttypgrp_and__exit - 20 +20 restore_ttypgrp_and__exit 21 - -21 hush_main 1181 1152 -29 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/1 up/down: 20/-50) Total: -30 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03docs: Add links to cmd description from cmd listNoelle Leigh2-7/+14
In the generated `docs/busybox.pod` file, add a link for each command in the big command list that goes to that command's description, like a compact table of contents. This seems to only affect the generated HTML version of the usage page. To add `id` attributes to each usage section title, each command now uses `=head2` instead of `=item` for their section heading. To add links to each command in the list, the list was unindented so that it could use rich text, and each command was marked as code text (C<>) so they are styled in monospace. These changes mean that the HTML and mandoc command list will expand to fit the available width of the viewport, rather than wrapping at a fixed line-length. The plain text version retains its existing wrapping behavior. Because of the new code text formatting, `--quotes=none` was added to the pod2man and pod2text invocations in Makefile.custom to prevent the command list from quoting every single command. Signed-off-by: Noelle Leigh <noelle@noelle.dev> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: if !JOBS, skip tests which wouldn't workDenys Vlasenko13-2/+41
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: don't save history in subshells; on NOMMU, don't be interactive on reexecDenys Vlasenko1-54/+72
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03hush: rename hush_exit to save_history_run_exit_trap_and_exit, sigexit to ↵Denys Vlasenko1-15/+15
restore_ttypgrp_and_killsig_or__exit Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-03shell: fix the check of empty HISTFILEDenys Vlasenko1-1/+1
The check for "" history file is done on a wrong state pointer. Fixes: shell: empty HISTFILE disables history saving, just as unset one did Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-02ftpd: code shrink, move replace_char() to libbbDenys Vlasenko7-53/+46
function old new delta modprobe_main 803 804 +1 escape_text 127 122 -5 replace 18 - -18 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/1 up/down: 1/-23) Total: -22 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-01ls: don't do unnecessary tty operations when called from ftpdDenys Vlasenko1-5/+13
function old new delta ls_main 660 690 +30 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-01ls: code shrinkDenys Vlasenko1-19/+20
Looks like gcc can figure this out by itself, but let's be explicit Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-01libbb/dump: much faster formatting of %_u on x86Denys Vlasenko2-3/+19
function old new delta display 1485 1481 -4 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-01libbb/yescrypt: code shrinkDenys Vlasenko1-4/+9
function old new delta static.PBKDF2_SHA256 219 165 -54 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-08-01ls: fix -Q to match GNUDenys Vlasenko6-34/+114
function old new delta print_name 137 229 +92 display_files 375 402 +27 c_escape_conv_str00 - 24 +24 display 1476 1485 +9 conv_str 33 - -33 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 3/0 up/down: 152/-33) Total: 119 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-07-31ls: lack of -q should not suppress -QDenys Vlasenko1-4/+6
function old new delta print_name 134 137 +3 display_files 374 375 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 4/0) Total: 4 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-07-31ls: implement -q, fix -w0, reduce startup timeDenys Vlasenko2-62/+122
function old new delta ls_main 598 660 +62 ls_longopts - 47 +47 G_isatty - 36 +36 print_name 102 134 +32 display_files 358 374 +16 .rodata 105829 105833 +4 vgetopt32 1330 1317 -13 static.ls_longopts 47 - -47 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 4/1 up/down: 197/-60) Total: 137 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-07-30*: use safe_waitpid() or wait_any_nohang() where approppriateDenys Vlasenko3-7/+9
function old new delta crond_main 1227 1237 +10 init_main 804 794 -10 wait_one 263 252 -11 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 10/-21) Total: -11 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-07-30crond: reap orphaned grandchildren to prevent zombie buildupValentin Lab1-0/+4
If a cron job launches a background task, e.g. `sh -c "sleep 5 &"`, the shell exits immediately and the `sleep` process is re-parented to PID 1. When BusyBox `crond` itself happens to be PID 1 (common in a minimal container), those orphans become direct children of `crond`. Because `crond` only calls waitpid() for the PIDs it explicitly tracks, these processes remain forever in Z state and the container slowly fills with zombies. Add a small `while (waitpid(-1, NULL, WNOHANG) > 0)` sweep at the end of check_completions() so any stray children are reaped. When `crond` is not PID 1 the loop returns -ECHILD immediately, so behaviour and overhead on a normal system are unchanged. Size impact: +12 bytes on x86-64 (gcc 13.3.0 -Os, static) Signed-off-by: Valentin Lab <valentin.lab@kalysto.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2025-07-30date: return failure exit code on clock_settime errorLadislav Michl1-1/+1
Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>