aboutsummaryrefslogtreecommitdiff
path: root/shell/hush.c
AgeCommit message (Collapse)Author
2008-02-20libbb: introduce and use nonblock_safe_read(). Yay!Denis Vlasenko
Our shells are immune from this nasty O_NONBLOCK now! function old new delta nonblock_safe_read - 78 +78 file_get 276 295 +19 generateMTFValues 428 435 +7 read_line_input 1776 1772 -4 preadbuffer 543 450 -93 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/2 up/down: 104/-97) Total: 7 bytes text data bss dec hex filename 615190 715 23924 639829 9c355 busybox_old 615168 715 23924 639807 9c33f busybox_unstripped
2008-02-16libbb: introduce bb_signals and bb_signals_recursive,Denis Vlasenko
which sets same handler for many signals. sig_catch is nuked (bb_signals_recursive is more descriptive name). *: use them as appropriate. function old new delta bb_signals_recursive - 95 +95 bb_signals - 52 +52 run_command 258 273 +15 svlogd_main 1368 1377 +9 runsv_main 1746 1752 +6 runsvdir_main 1643 1646 +3 UNSPEC_print 64 66 +2 time_main 1128 1127 -1 ... resize_main 246 210 -36 sig_catch 63 - -63 set_fatal_sighandler 85 14 -71 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 5/24 up/down: 182/-548) Total: -366 bytes
2008-02-16random s/short/int/Denis Vlasenko
add_cmd 1189 1190 +1 xconnect_ftpdata 118 117 -1 data_align 86 84 -2 process_files 2101 2096 -5 forkexec 1345 1334 -11
2008-02-11hush: die_sllep needs restoring only if job control is onDenis Vlasenko
2008-02-11hush: close-on-exec interactive_fdDenis Vlasenko
2008-02-11hush: set CLOEXEC on script file being executedDenis Vlasenko
2008-02-11hush: fix the commentDenis Vlasenko
2008-02-11hush: reset die_sleep to 0 in child after forkDenis Vlasenko
2008-02-10hush: reinstate `cmd` handling for NOMMU (with fat big warning).Denis Vlasenko
hush: fix a case where none of pipe members could be started because of fork failure hush: rename functions: xxx_real -> xxx hush: try to add a bit more of vfork-friendliness hush: add rudimentary design docs hush: add TODO (newly discovered bug with globbing)
2008-01-28*: tidy up usage of char **environDenis Vlasenko
2008-01-08hush: report [v]fork failuresDenis Vlasenko
hush: more correct handling of piping config: add CONFIG_NOMMU
2008-01-02libbb: introduce and use safe_waitpid (loops in EINTR)Denis Vlasenko
*: use more approproate (shorter) versions of wait() function old new delta safe_waitpid - 48 +48 wait_any_nohang - 17 +17 send_tree 365 369 +4 processorstop 432 435 +3 text_yank 110 108 -2 make_human_readable_str 202 200 -2 crond_main 1368 1366 -2 handle_sigchld 49 43 -6 reapchild 166 159 -7 custom 260 250 -10 checkscript 191 177 -14 wait_nohang 17 - -17 wait_pid 43 - -43 ------------------------------------------------------------------------------ (add/remove: 2/2 grow/shrink: 2/7 up/down: 72/-103) Total: -31 bytes
2007-12-24hush: fixlet for NOMMUDenis Vlasenko
update TODO_config_nommu
2007-11-28reorganize applet table. Eliminates pointers to names.Denis Vlasenko
Should be a big win for libbusybox. busybox wins too: text data bss dec hex filename 776524 929 9100 786553 c0079 busybox_old 775903 929 9100 785932 bfe0c busybox_unstripped
2007-11-24remove echo_main -> bb_echo indirectionDenis Vlasenko
2007-11-24hush: fix segfault in "echo $@" when we have no argumentsDenis Vlasenko
2007-11-23kill lash. "lash" builtin still exists, but it runs hush.Denis Vlasenko
2007-11-23hush: implement echo builtinDenis Vlasenko
builtin_echo - 36 +36 bltins 384 396 +12 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/0 up/down: 48/0) Total: 48 bytes
2007-11-23hush: fix $ expansion in redirections, add testcase for thatDenis Vlasenko
2007-11-23hush: implement test builtinDenis Vlasenko
2007-11-23hush: plug memory leakDenis Vlasenko
2007-10-11add -fvisibility=hidden to CC flags, mark XXX_main functionsDenis Vlasenko
EXTERNALLY_VISIBLE. 5% size reduction of libbusybox.so
2007-10-10get rid of global "struct bb_applet *current_applet"Denis Vlasenko
2007-10-01hush: fix glob() abuse. Code was making unfounded assumptions howDenis Vlasenko
glob() works, and it broke horribly on specific uclibc config.
2007-10-01hush: int->smallint for flag vars; make some names more "greppable"Denis Vlasenko
2007-10-01hush: feeble attempt at making it more NOMMU-friendlyDenis Vlasenko
2007-10-01hush: stop doing manual acounting of open fd's, kernel can do it for usDenis Vlasenko
2007-09-30introduce and use close_on_exec_on(fd). -50 bytes.Denis Vlasenko
2007-09-27introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).Denis Vlasenko
2007-08-12trylink: produce even more info about final link stageDenis Vlasenko
trylink: explain how to modify link and drastically decrease amount of padding (unfortunately, needs hand editing ATM). *: add ALIGN1 / ALIGN2 to global strings and arrays of bytes and shorts size saving: 0.5k
2007-06-25Consolidate ARRAY_SIZE macro; remove one unneeded global var (walter harms ↵Denis Vlasenko
<wharms@bfs.de>)
2007-06-13*: BB_BANNER -> bb_banner (it is not a const or #define)!Denis Vlasenko
correct_password: explain in detail why it is ok to use bb_banner fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one Marginal size difference: text data bss dec hex filename 679119 2700 15632 697451 aa46b busybox_old 679091 2700 15632 697423 aa44f busybox_unstripped
2007-06-13hush: fix read builtin to not read ahead past eol and to not useDenis Vlasenko
insane amounts of stack. Testsuite updated.
2007-06-08make busybox --install work even if /proc/self/exe doesn't existDenis Vlasenko
# size busybox_old busybox_unstripped text data bss dec hex filename 680095 2704 15648 698447 aa84f busybox_old 680099 2704 15648 698451 aa853 busybox_unstripped
2007-05-30hush: trivial buglet found by randomconfig testingDenis Vlasenko
2007-05-30whitespace fixesDenis Vlasenko
2007-05-26usage.c: remove reference to busybox.hDenis Vlasenko
*: s/include "busybox.h"/include "libbb.h"
2007-05-26xpipe: introduce (saves ~170 bytes)Denis Vlasenko
udhcp/signalpipe.c: use pipe instead of socketpair.
2007-05-25hush: fix 'echo abc`sleep 5`def' + Ctrl-Z and Ctrl-C bugs. +50 bytes of code.Denis Vlasenko
2007-05-25hush: avoid duplicating HUSH_VERSIONDenis Vlasenko
2007-05-25hush: micro-optimization in new variable codeDenis Vlasenko
2007-05-25hush: we can't do without variable->value member, saving 25 bytes of codeDenis Vlasenko
and some runtime memory. Rename few variables.
2007-05-25hush: rework variable storage and environment handling.Denis Vlasenko
More that -100 bytes of code + memory leak plugged. Added a testcase for it.
2007-05-24hush: fix segfaulting syntax error in interactive hushDenis Vlasenko
2007-05-24hush: fix handling of unmatched ${name (without closing '}') -Denis Vlasenko
was eating all remaining input, potentially megabytes. nofork: save/restore die_jmp too nofork: use -2222 instead of -111 as "special" return valur for zero (-111 is used by some applets. -2222 won't fit in exitcode and thus safer)
2007-05-23hush: make syntax error messages a bit more usefulDenis Vlasenko
2007-05-23hush: fix job control with eval /bin/external_progDenis Vlasenko
hush: fix parsing of unterminated "str with no EOL hush: improved make_string() (smaller, faster, needs less RAM) hush: renamed several functions
2007-05-23hush: fix a bit different instance of "No EOL" bug,Denis Vlasenko
add testsuite for that. Expand another testsuite.
2007-05-21hush: add 3 CONFIG_xxx, allowing for smaller and less capable hush.Denis Vlasenko
Minimal hush is ~9k now (lash is ~7k).
2007-05-21hush: using smallints where we can. save ~20 bytes in code andDenis Vlasenko
some data storage at runtime.