Commit Graph

10040 Commits (1943aec2ec390d9fda159aa0412362780ec83f09)

Author SHA1 Message Date
Denis Vlasenko 422cd7c81c hush: make ^C work again, ^Z probably isn't working
function                                             old     new   delta
file_get                                             219     254     +35
check_and_run_traps                                  122     133     +11
run_list                                            2001    2010      +9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 55/0)               Total: 55 bytes
2009-03-31 12:41:52 +00:00
Denis Vlasenko abedaac842 hush: do not reset sighaldlers after fork - instead, prevent them from doing any harm
if they will be called. saves many sigaction calls on every fork.

function                                             old     new   delta
hush_main                                            887     971     +84
sigexit                                               54      65     +11
run_list                                            2006    2001      -5
maybe_set_sighandler                                  76      50     -26
set_fatal_sighandler                                 186       -    -186
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 2/2 up/down: 95/-217)          Total: -122 bytes
2009-03-31 12:03:40 +00:00
Denis Vlasenko d5762932fb hush: rework signal and trap handling. Some smaller bits are TODO,
expect minor breakage

function                                             old     new   delta
set_fatal_sighandler                                  12     186    +174
check_and_run_traps                                    -     122    +122
maybe_set_sighandler                                   -      76     +76
hush_main                                            831     887     +56
sigtimedwait                                           -      50     +50
__GI_sigtimedwait                                      -      50     +50
hush_exit                                             49      93     +44
set_mode                                             749     777     +28
pseudo_exec_argv                                     131     151     +20
static.zero_ts                                         -       8      +8
expand_variables                                    1962    1970      +8
builtin_wait                                         172     174      +2
set_misc_sighandler                                   12       -     -12
set_jobctrl_sighandler                                12       -     -12
handler_ctrl_c                                        16       -     -16
builtin_set_mode                                      28       -     -28
handle_trap                                           97       -     -97
handler_ctrl_z                                       107       -    -107
builtin_trap                                         545     438    -107
run_list                                            2149    2006    -143
------------------------------------------------------------------------------
(add/remove: 5/6 grow/shrink: 7/2 up/down: 638/-522)          Total: 116 bytes
2009-03-31 11:22:57 +00:00
Mike Frysinger d690f68554 implement `unset` semantics as required by POSIX 2009-03-30 06:50:54 +00:00
Mike Frysinger 5f9f1506ad fix DOC build output to be like kbuild standard 2009-03-30 05:26:34 +00:00
Mike Frysinger 0080ea7992 update `trap` poisx link 2009-03-30 03:50:07 +00:00
Mike Frysinger 87824e0e50 do not automatically display job information when the shell is not interactive 2009-03-30 00:19:30 +00:00
Mike Frysinger 681a4b7f06 enable trap tests 2009-03-29 23:49:46 +00:00
Mike Frysinger 9f8128f480 first pass at `trap` support in hush 2009-03-29 23:49:37 +00:00
Denis Vlasenko 0d907eab6c modutils: dont pass NULL options to init_module() 2009-03-29 17:25:14 +00:00
Denis Vlasenko a83dbd4146 build system: hdparm -d is not that dangerous, remove warning 2009-03-29 17:13:20 +00:00
Denis Vlasenko a6eb7f4ddf sendmail: add more example in usage text 2009-03-29 16:53:25 +00:00
Denis Vlasenko e1de3af989 module loading for 2.4: use fd-based io instead of FILE based;
use xlseek and xread; simpler check for ELF signature.

   text    data     bss     dec     hex filename
 824460     476    7616  832552   cb428 busybox_old
 824333     476    7616  832425   cb3a9 busybox_unstripped
2009-03-29 16:38:59 +00:00
Mike Frysinger fd303b11ef add test cases for `trap` ... but disabled for now until trap support is committed 2009-03-29 09:54:40 +00:00
Denis Vlasenko 038fe44713 sysctl: move code around to get rid of forward references.
(incidentally it helps gcc to make code smaller)
2009-03-29 02:23:16 +00:00
Denis Vlasenko 5a6617acb8 sysctl: fix broken -p [file] - close bug 231 2009-03-29 02:22:19 +00:00
Mike Frysinger b975febeea mark msh as deprecated 2009-03-29 00:52:41 +00:00
Mike Frysinger 40b8dc410e use bb_strtou() in umask/wait and check errno to see if there was a problem rather than using endp 2009-03-29 00:50:30 +00:00
Mike Frysinger 8ec1c9dc6e make sure we check job status whenever updating the prompt 2009-03-29 00:45:26 +00:00
Mike Frysinger 0b87e4ad15 test for invalid named variables 2009-03-28 21:06:38 +00:00
Mike Frysinger 7c3e52c1bd do not let handle_dollar() accept vars that start with a digit 2009-03-28 21:06:22 +00:00
Mike Frysinger 56bdea1b43 implement `wait` builtin 2009-03-28 20:01:58 +00:00
Denis Vlasenko e61f07f036 remove ((expr)) bash'ism 2009-03-28 19:31:34 +00:00
Denis Vlasenko 701ac1864b randomconfig fix 2009-03-28 19:22:08 +00:00
Mike Frysinger 5a82845f60 update the normally disabled debug code around the syntax() func to use new maybe_die() 2009-03-28 19:09:04 +00:00
Denis Vlasenko a2333c8938 randomtest fixes 2009-03-28 19:08:23 +00:00
Mike Frysinger 78f9d8eb7a add hush tests for parameter expansion 2009-03-28 18:55:34 +00:00
Mike Frysinger 6379bb4fde implement most POSIX parameter expansions (~+500bytes) 2009-03-28 18:55:03 +00:00
Mike Frysinger 42ab86520e make sure we exit based on test failure rather than always exiting with 0 2009-03-28 15:43:47 +00:00
Mike Frysinger 25a6ca0dd4 split up feature todo by posix/bash 2009-03-28 13:59:26 +00:00
Mike Frysinger ad88d5a4cf unify `set` handling with command line processing, fixup `set` argv processing so it doesnt clobber argv when setting options, and barf on unhandled set options 2009-03-28 13:44:51 +00:00
Mike Frysinger 19a7ea126a handle the "-s" command line option that POSIX requires 2009-03-28 13:02:11 +00:00
Mike Frysinger a71cfa8aa1 rename "-f" (fake) option to "-n" to match POSIX 2009-03-28 12:57:54 +00:00
Mike Frysinger d006edb2ca tweak format modifier in debug code to fixup gcc warning 2009-03-28 12:43:53 +00:00
Mike Frysinger ec2c655702 convert some of the ENABLE_FEATURE_EDITING from CPP if to C if 2009-03-28 12:24:44 +00:00
Mike Frysinger 39456a18a1 stop lying about [[ test support 2009-03-28 12:21:57 +00:00
Denis Vlasenko 781b672b37 mkfs.vfat: fix a problem with over-estimating FAT size 2009-03-28 12:17:20 +00:00
Mike Frysinger 70a2c8d531 make lash deprecation more prominent 2009-03-28 12:12:58 +00:00
Denis Vlasenko f54dd09171 mkfs.vfat: mkdosfs compat with choosing clyster size 2009-03-28 03:22:08 +00:00
Denis Vlasenko 14ee4e65f1 mkfs.vfat: more of pointless tweaking 2009-03-28 02:28:58 +00:00
Denis Vlasenko 020f465cbd mkfs.vfat: small tweak to comments 2009-03-28 02:18:49 +00:00
Denis Vlasenko 9d04b6b630 mkdosfs (aka mkfs.vfat): new applet by Vladimir
text    data     bss     dec     hex filename
 821202     476    7616  829294   ca76e busybox_old
 823577     476    7616  831669   cb0b5 busybox_unstripped
2009-03-28 02:13:01 +00:00
Denis Vlasenko 4d3a812b71 ls: warning fix
rm: accept and ignore -v (verbose)
2009-03-27 17:22:00 +00:00
Denis Vlasenko 3603cd2808 tail: fix tail +N syntax not working. Closes bug 221. 2009-03-27 02:36:02 +00:00
Mike Frysinger bfc0fae952 enable most job functions on no-mmu systems 2009-03-26 18:14:16 +00:00
Denis Vlasenko f9beb61a81 tftp: when we infer local name from remote (-r [/]path/path/file),
strip path. This mimics wget and is generally more intuitive.
2009-03-25 03:55:53 +00:00
Mike Frysinger b2705e1652 do not make startup banner depend on job support 2009-03-23 08:44:02 +00:00
Denis Vlasenko c0ea82a457 libbb: revent previous version of "concurrent history updating"
and replace it with one which does not "snoop" history written
by others. (1) it is what bug 185 needs, and (2) it is less bloaty:

function                                             old     new   delta
load_history                                           -     252    +252
read_line_input                                     3155    3287    +132
next_token                                           914     918      +4
qrealloc                                              36      33      -3
getoptscmd                                           713     708      -5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/2 up/down: 388/-8)            Total: 380 bytes
2009-03-23 06:33:37 +00:00
Mike Frysinger ddbee974b4 move parse_stream out of ENABLE_HUSH_TICK to avoid implicit decl/build error 2009-03-22 22:48:41 +00:00
Denis Vlasenko 57abf9e947 libbb: make history saving/loading concurrent-safe
* all history writers always append (not overwrite) history files
* they reload history if they detect that file length has changed since last
write
* they trim history file only when it grows 4 times longer than MAXLINES
* they do this atomically by creating new file and renaming it to old

Unfortunately, this comes at a price:

function                                             old     new   delta
load_history                                           -     346    +346
read_line_input                                     3155    3358    +203
new_line_input_t                                      17      31     +14
...irrelevant small jitter...
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/5 up/down: 573/-13)           Total: 560 bytes
2009-03-22 19:00:05 +00:00