aboutsummaryrefslogtreecommitdiff
path: root/shell/hush.c
AgeCommit message (Collapse)Author
2008-06-18hush: fix a bug with backslashes improperly handled in unquoted variables.Denis Vlasenko
with previous patch: function old new delta parse_stream 1638 1758 +120 expand_on_ifs 97 174 +77 free_pipe 206 237 +31 setup_redirect 217 220 +3 setup_redirects 143 144 +1 done_word 698 688 -10 free_strings 38 - -38 expand_variables 1451 1403 -48 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 5/2 up/down: 232/-96) Total: 136 bytes
2008-06-18hush: add testsuite for "no globbing in redirection" rule.Denis Vlasenko
simplify redirection habdling
2008-06-18hush: fix last hush-bugs testcase (disappearing "", $empty"" etc)Denis Vlasenko
2008-06-17hush: fix $$ handlingDenis Vlasenko
2008-06-17hush: fix "for a in; do echo 'I should never run'; done" bugDenis Vlasenko
2008-06-17hush: continue fixing quoting and subst: fix glob_and_assign.tests.Denis Vlasenko
2008-06-17hush: cleanup pass, the biggest is - moved builtins to the end of the file,Denis Vlasenko
they really annoy in the middle of parser code. no real code changes.
2008-06-17hush: fix memory leak. it was actually rather invloved problem.Denis Vlasenko
Now finally glob/variable expansion is done IN THE RIGHT ORDER! It opens up a possibility to cleanly fix remaining known bugs. function old new delta o_save_ptr 115 286 +171 o_save_ptr_helper - 115 +115 done_word 591 690 +99 o_get_last_ptr - 31 +31 expand_on_ifs 125 97 -28 add_string_to_strings 28 - -28 run_list 1895 1862 -33 debug_print_strings 42 - -42 add_strings_to_strings 126 - -126 expand_variables 1550 1394 -156 o_debug_list 168 - -168 expand_strvec_to_strvec 388 10 -378 ------------------------------------------------------------------------------ (add/remove: 2/4 grow/shrink: 2/4 up/down: 416/-959) Total: -543 bytes
2008-06-16hush: fixing fallout from last big glob fix:Denis Vlasenko
fix segfault; identify where we leak memory function old new delta expand_strvec_to_strvec 353 336 -17
2008-06-16hush: fix hush-bugs/glob_and_vars.tests testcase:Denis Vlasenko
globbing is now done _after_ variable/`cmd` substitution function old new delta expand_strvec_to_strvec 7 353 +346 expand_variables 1348 1383 +35 add_string_to_strings - 28 +28 globhack 114 - -114 done_word 778 579 -199 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 2/1 up/down: 409/-313) Total: 96 bytes
2008-06-15hush: eliminate PARSEFLAG_SEMICOLON and ctx->parse_type field.Denis Vlasenko
function old new delta parse_and_run_file 30 27 -3 hush_main 795 792 -3 initialize_context 45 39 -6 done_word 791 778 -13 parse_and_run_stream 375 338 -37 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/5 up/down: 0/-62) Total: -62 bytes
2008-06-14hush: fix a bug where we were requiring semicolon here: (cmd;)Denis Vlasenko
also fix a bug where after error prompt is not shown. function old new delta parse_stream 1612 1638 +26 parse_and_run_stream 361 375 +14 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 40/0) Total: 40 bytes
2008-06-14hush: add support for ':'; create testsuite entriesDenis Vlasenko
text data bss dec hex filename 809569 612 7044 817225 c7849 busybox_old 809528 612 7044 817184 c7820 busybox_unstripped
2008-06-14hush: support "! cmd | cmd" negationDenis Vlasenko
function old new delta done_word 749 791 +42 run_list 1821 1859 +38 checkjobs 334 351 +17 done_pipe 61 74 +13 static.reserved_list 132 144 +12 initialize_context 53 45 -8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 5/1 up/down: 122/-8) Total: 114 bytes
2008-06-12hush: speed up o_addX{chr,str}Denis Vlasenko
function old new delta o_addQstr - 162 +162 o_addQchr - 89 +89 o_addstr - 58 +58 o_addqchr 50 81 +31 expand_on_ifs 103 97 -6 add_till_backquote 92 82 -10 expand_variables 1281 1217 -64 parse_stream 1675 1609 -66 o_addqstr 155 - -155 ------------------------------------------------------------------------------ (add/remove: 3/1 grow/shrink: 1/4 up/down: 340/-301) Total: 39 bytes text data bss dec hex filename 759870 604 6684 767158 bb4b6 busybox_old 759909 604 6684 767197 bb4dd busybox_unstripped
2008-06-12hush: fix for nested $()s with escapes + testsuiteDenis Vlasenko
2008-06-10hush: more backtick and quoting fixes...Denis Vlasenko
2008-06-10hush: fix escaping of \[*?; add testsuites for these and for globbingDenis Vlasenko
2008-06-10hush: fix yet another falloutDenis Vlasenko
hush: move fixed testsuites out of hush-bugs/*
2008-06-10hush: fix some fallout from prev commits, add testsuiteDenis Vlasenko
2008-06-10hush: search/and/replace style cleanups, no code changesDenis Vlasenko
2008-06-10hush: fix two nasty bugs:Denis Vlasenko
hush-bugs/tick2.tests: ok hush-bugs/tick.tests: ok function old new delta parse_stream 1332 1557 +225 b_addptr - 97 +97 add_till_backquote - 82 +82 b_addstr - 58 +58 b_grow_by - 50 +50 setup_string_in_str - 29 +29 expand_variables 1196 1199 +3 expand_on_ifs 100 97 -3 b_addqchr 57 50 -7 parse_and_run_string 48 31 -17 lookup_param 27 - -27 b_addchr 75 45 -30 count_ifs 44 - -44 process_command_subs 222 - -222 ------------------------------------------------------------------------------ (add/remove: 5/3 grow/shrink: 2/4 up/down: 544/-350) Total: 194 bytes text data bss dec hex filename 759354 604 6684 766642 bb2b2 busybox_old 759534 604 6684 766822 bb366 busybox_unstripped
2008-06-10hush: fix a memory leak in NOMMU caseDenis Vlasenko
2008-06-09less: fix a case when regexp matches ""Denis Vlasenko
hush: remove wrong comment, expand another one
2008-05-25hush: make it ignore SIGINT etc in a config wich has no job controlDenis Vlasenko
2008-05-19- use EXIT_{SUCCESS,FAILURE}. No object-code changesBernhard Reutner-Fischer
2008-04-13ash: speed up NOFORK code in ash by eliminating second find_applet().Denis Vlasenko
some code reduction along the way. function old new delta run_list 1971 1981 +10 run_nofork_applet_prime 181 182 +1 unsetcmd 97 96 -1 delete_cmd_entry 54 53 -1 describe_command 399 397 -2 cmdlookup 152 150 -2 evaltreenr 602 599 -3 evaltree 602 599 -3 clearcmdentry 101 98 -3 cdcmd 675 672 -3 hashcmd 305 301 -4 find_command 933 910 -23 evalcommand 1371 1229 -142 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/11 up/down: 11/-187) Total: -176 bytes
2008-03-24lpd: fix OOM vulnerability (was eating arbitrarily large commands)Denis Vlasenko
2008-03-23patch: shrink by Pascal Bellard <pascal.bellard AT ads-lu.com> (-80 bytes)Denis Vlasenko
*: removal of #include <getopt.h>
2008-03-20*: use fopen_or_warn in few more placesDenis Vlasenko
2008-03-17*: add -Wunused-parameter; fix resulting breakageDenis Vlasenko
function old new delta procps_scan 1265 1298 +33 aliascmd 278 283 +5 parse_file_cmd 116 120 +4 dname_enc 373 377 +4 setcmd 90 93 +3 execcmd 57 60 +3 count_lines 72 74 +2 process_command_subs 340 339 -1 test_main 409 407 -2 mknod_main 179 177 -2 handle_incoming_and_exit 2653 2651 -2 argstr 1312 1310 -2 shiftcmd 131 128 -3 exitcmd 46 43 -3 dotcmd 297 294 -3 breakcmd 86 83 -3 evalpipe 353 349 -4 evalcommand 1180 1176 -4 evalcmd 109 105 -4 send_tree 374 369 -5 mkfifo_main 82 77 -5 evalsubshell 152 147 -5 typecmd 75 69 -6 letcmd 61 55 -6 add_cmd 1190 1183 -7 main 891 883 -8 ash_main 1415 1407 -8 parse_stream 1377 1367 -10 alloc_procps_scan 55 - -55 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 7/21 up/down: 54/-148) Total: -94 bytes text data bss dec hex filename 797195 658 7428 805281 c49a1 busybox_old 797101 658 7428 805187 c4943 busybox_unstripped
2008-03-17libbb: introduce and use sigprocmask_allsigs and sigaction_set.Denis Vlasenko
libbb: rename sig_pause to wait_for_any_sig.
2008-03-12libbb: introduse and use signal_[no_]SA_RESTART_empty_mask and sigaction_setDenis Vlasenko
signal_SA_RESTART_empty_mask - 65 +65 signal_no_SA_RESTART_empty_mask - 54 +54 dd_main 1325 1369 +44 sigaction_set - 19 +19 dname_enc 373 377 +4 UNSPEC_print 64 66 +2 setsignal 296 294 -2 bb_signals_recursive 95 92 -3 bb_askpass 367 361 -6 inetd_main 1810 1797 -13 rx_main 912 883 -29 sigdelset 32 - -32 __sigdelset 32 - -32 __GI_sigdelset 32 - -32 sighup_handler 84 37 -47 arping_main 1844 1797 -47 fsck_main 1869 1807 -62 run_list 1917 1844 -73 vlock_main 492 409 -83 progressmeter 883 798 -85 handle_incoming_and_exit 2737 2651 -86 ------------------------------------------------------------------------------ (add/remove: 3/3 grow/shrink: 3/12 up/down: 188/-632) Total: -444 bytes
2008-02-27*: add optimization barrier to all "G trick" locationsDenis Vlasenko
2008-02-24less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)Denis Vlasenko
*: minor shrink
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