Denys Vlasenko
285ad155c4
ash: preparatory work for pipefail and code shrink. -44 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-12-04 23:02:27 +01:00
Denys Vlasenko
7a7b034482
ash: re-enable SIGHUP on entry. Closes bug 771.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-12-04 04:18:31 +01:00
Denys Vlasenko
8eda4a9005
ash: straighten up a bit of code in varvalue()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-30 12:16:17 +01:00
Denys Vlasenko
2ce42e98d7
ash: more cosmetics and cleanups
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-29 02:18:13 +01:00
Denys Vlasenko
068d386a6c
ash: cosmetics, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-29 01:41:11 +01:00
Denys Vlasenko
76bc2d6deb
ash: remove last "signed char"; make SIT() clearer. -12 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-29 01:37:46 +01:00
Denys Vlasenko
0337e038a9
ash: randmconfig fix
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-29 00:12:30 +01:00
Denys Vlasenko
cd71683ae6
ash: remake strange signed char machinery to be unsigned. -57 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-28 22:14:02 +01:00
Denys Vlasenko
160b9ca731
ntpd: make it NOMMU-safe; ash: exclude it on NOMMU builds
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-27 02:35:15 +01:00
Denys Vlasenko
c270454f8f
fix fallout from isprint() changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-20 19:14:19 +01:00
Denys Vlasenko
f3e2818895
hush: improve HUSH_BRACE_EXP code (still disabled). ~0 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-17 03:35:31 +01:00
Denys Vlasenko
160746b603
tweak in comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-16 05:51:18 +01:00
Denys Vlasenko
5b2db97703
hush: initial stab at brace expansion support
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-16 05:49:36 +01:00
Denys Vlasenko
d8389ad760
hush: fix handling of words with braces. +65 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-16 03:18:46 +01:00
Denys Vlasenko
00243b0a1a
hush: fix exit code propagation from cmd
. +45 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-16 02:00:03 +01:00
Denys Vlasenko
a7ccdeef39
libbb: added xfdopen_for_read/write
...
function old new delta
xfdopen_helper - 40 +40
logdir_open 1163 1184 +21
process_stdin 433 443 +10
xfdopen_for_write - 9 +9
doCommands 2465 2474 +9
patch_main 1214 1222 +8
bbunpack 457 465 +8
xfdopen_for_read - 7 +7
scan_tree 258 262 +4
xstrtoul_range_sfx 230 231 +1
sendmail_main 957 955 -2
passwd_main 1027 1023 -4
parse 969 964 -5
test_main 253 247 -6
sed_main 655 649 -6
dos2unix_main 437 429 -8
fbsplash_main 950 938 -12
handle_dir_common 371 354 -17
expand_vars_to_list 2197 2169 -28
update_passwd 1275 1246 -29
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 7/10 up/down: 117/-117) Total: 0 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-15 23:28:11 +01:00
Denys Vlasenko
647553a4fc
hush: wait for cmd
to complete, and immediately store its exitcode in $?
...
function old new delta
expand_vars_to_list 2129 2197 +68
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-15 19:58:19 +01:00
Denys Vlasenko
0d8c0b810e
removed SuSv3 doc tarball - potential licensing problem
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-06 04:11:22 +01:00
Denys Vlasenko
8131eea3dc
*: introduce and use ffulsh_all()
...
function old new delta
buffer_fill_and_print 179 196 +17
fflush_all - 9 +9
spawn 87 92 +5
rtcwake_main 455 453 -2
...
alarm_intr 93 84 -9
readcmd 1072 1062 -10
bb_ask 345 333 -12
more_main 845 832 -13
flush_stdout_stderr 42 23 -19
xfflush_stdout 27 - -27
flush_stderr 30 - -30
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 2/50 up/down: 31/-397) Total: -366 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-02 14:19:51 +01:00
Denys Vlasenko
f2cbb03a37
*: optimize most of isXXXXX() macros
...
text data bss dec hex filename
824164 453 6812 831429 cafc5 busybox_old
823730 453 6812 830995 cae13 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-23 03:16:08 +02:00
Denys Vlasenko
c1947f18f5
build failure fix and some cosmetics
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-23 01:30:26 +02:00
Denys Vlasenko
c0dab37d0a
*: remove last function calls to isspace
...
function old new delta
xstrtoul_range_sfx 232 231 -1
xstrtoull_range_sfx 295 293 -2
trim 82 80 -2
trim_trailing_spaces_and_print 57 52 -5
isspace 18 - -18
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-22 22:28:08 +02:00
Denys Vlasenko
3ef4f77620
hush: fix exec builtin in a better way (+ "glob in exec" bug fixed)
...
function old new delta
execvp_or_die - 50 +50
static.pseudo_null_str 3 - -3
builtin_exec 83 57 -26
pseudo_exec_argv 200 163 -37
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/2 up/down: 50/-66) Total: -16 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-19 23:09:06 +02:00
Denys Vlasenko
aaa22d2493
hush: use configured max line length, not BUFSIZE from libc
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-19 16:34:39 +02:00
Denys Vlasenko
36df04837a
randomconfig fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-19 16:07:28 +02:00
Denys Vlasenko
3b3ccdc5bc
hush: remove superfluous assignment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-19 13:24:07 +02:00
Denys Vlasenko
8bc7f2c5aa
hush: make it compile again :/
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-19 13:20:52 +02:00
Denys Vlasenko
c0836530f1
hush: cosmetics. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-19 13:13:06 +02:00
Denys Vlasenko
f37eb3999b
hush: fix handling of empty arguments
...
function old new delta
builtin_exec 25 83 +58
parse_stream 2242 2261 +19
run_pipe 1782 1787 +5
static.pseudo_null_str - 3 +3
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/0 up/down: 85/0) Total: 85 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-18 11:46:35 +02:00
Mike Frysinger
28736c36ca
hush: handle empty execs
...
Sometimes variable expansions yield empty strings, and if they happen to
be a command someone wants to run like `$foo`, then hush currently
segfaults. So handle `` and $().
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-18 01:15:36 -04:00
Mike Frysinger
4ebc76c8a2
hush: add a printf builtin
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15 03:33:31 -04:00
Mike Frysinger
ccb1959aa5
hush: unify handling of builtin applets
...
Saves about 10 bytes for each additional builtin applet.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15 03:33:31 -04:00
Denys Vlasenko
76ace254e1
ash,hush: fix $RANDOM in children being repeated
...
function old new delta
next_random 46 68 +22
forkshell 248 263 +15
expand_vars_to_list 2118 2131 +13
run_pipe 1775 1782 +7
popstring 134 140 +6
builtin_umask 123 121 -2
ash_main 1356 1336 -20
get_local_var_value 125 104 -21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/3 up/down: 63/-43) Total: 20 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-12 15:25:01 +02:00
Denys Vlasenko
8c66a9d07a
hush: shrink $RANDOM support
...
function old new delta
get_local_var_value 104 125 +21
hush_main 1024 983 -41
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-11 02:15:49 +02:00
Denys Vlasenko
e7670ff81d
ash: use bbox wrappers for malloc etc instead of homegrown ones
...
function old new delta
popstring 134 140 +6
ckmalloc 9 - -9
ckstrdup 22 - -22
ckrealloc 24 - -24
ckzalloc 28 - -28
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 1/0 up/down: 6/-83) Total: -77 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-11 00:45:25 +02:00
Denys Vlasenko
0e5e4eaf7b
ash: trivial shrink by using smaller int
...
function old new delta
copynode 197 196 -1
calcsize 127 126 -1
nodesize 54 27 -27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-29) Total: -29 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-11 00:36:20 +02:00
Denys Vlasenko
e3c6e19015
laguage and copyright date corrections, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 23:35:30 +02:00
Denys Vlasenko
3dc4a3e4dc
ash: make one testsuite entry more robust
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 23:08:28 +02:00
Denys Vlasenko
69d1f45c16
shell/Config.in: forgotten chunk with CONFIG_HUSH_RANDOM_SUPPORT
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 22:11:30 +02:00
Denys Vlasenko
cbe0b7fb59
hush: fix cut-n-paste error in last commit
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 22:00:58 +02:00
Denys Vlasenko
20b3d144e9
hush: add support for $RANDOM. If on:
...
function old new delta
hush_main 983 1024 +41
get_local_var_value 72 104 +32
block_signals 155 161 +6
reset_traps_to_defaults 211 214 +3
builtin_wait 268 271 +3
pseudo_exec_argv 198 200 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 6/0 up/down: 87/0) Total: 87 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 20:59:39 +02:00
Denys Vlasenko
3ea2e82dc7
ash: factor out $RANDOM support
...
function old new delta
next_random - 46 +46
ash_main 1361 1356 -5
change_random 132 97 -35
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 46/-40) Total: 6 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 20:59:04 +02:00
Denys Vlasenko
dea478855f
hush: support $PPID
...
function old new delta
get_local_var_value 33 72 +39
hush_main 951 983 +32
block_signals 152 155 +3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 74/0) Total: 74 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-09 15:40:49 +02:00
Denys Vlasenko
adf922ec28
*: a few more NOINLINEs
...
function old new delta
print_linkinfo - 815 +815
do_msg - 783 +783
INET_setroute - 757 +757
varvalue - 746 +746
do_sem - 637 +637
inflate_codes - 617 +617
INET6_setroute - 491 +491
edir - 370 +370
sync_cursor - 298 +298
update_utmp - 246 +246
searchLines - 165 +165
setup_alarm - 144 +144
may_wakeup - 101 +101
getNum 566 371 -195
refresh 1166 848 -318
rtcwake_main 809 479 -330
getty_main 2396 1921 -475
chpst_main 1373 746 -627
inflate_unzip_internal 1335 567 -768
evalvar 1384 612 -772
ipaddr_list_or_flush 2160 1246 -914
route_main 1585 245 -1340
ipcs_main 2523 1049 -1474
------------------------------------------------------------------------------
(add/remove: 13/0 grow/shrink: 0/10 up/down: 6170/-7213) Total: -1043 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-08 14:35:37 +02:00
Denys Vlasenko
a7bb3c1396
*: code shrink via NOINLINE
...
function old new delta
expand_vars_to_list - 2118 +2118
lzo1x_optimize - 1429 +1429
run_pipe 358 1775 +1417
arith_apply - 1335 +1335
mainQSort3 - 1198 +1198
logdir_open - 1163 +1163
rewrite - 1039 +1039
dump_identity - 987 +987
do_shm - 884 +884
cpio_o - 863 +863
cpio_main 1450 560 -890
ipcs_main 3442 2523 -919
bb_dump_dump 2611 1488 -1123
process_dev 4572 3405 -1167
logdirs_reopen 1308 86 -1222
arith 2084 707 -1377
mainSort 2622 1202 -1420
do_lzo_compress 2276 799 -1477
run_list 2491 943 -1548
expand_variables 2280 135 -2145
------------------------------------------------------------------------------
(add/remove: 9/0 grow/shrink: 1/10 up/down: 12433/-13288) Total: -855 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-08 12:28:08 +02:00
Denys Vlasenko
57ce977a97
ash: compile breakage fix
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-08 04:19:14 +02:00
Denys Vlasenko
d427689eee
Fix english in build system
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-06 22:13:37 +02:00
Denys Vlasenko
7bb346f23c
*: use {i,u}toa() where appropriate
...
function old new delta
startservice 377 363 -14
setari_u 54 40 -14
ash_main 1375 1361 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-42) Total: -42 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-06 22:09:50 +02:00
Cristian Ionescu-Idbohrn
301f5ecb8d
ash: error out on ${#1#}, ${#$11}, ${#11#}
...
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-05 02:07:23 +02:00
Denys Vlasenko
4d8873f997
ash: document where we accept invalid syntax. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-04 03:14:41 +02:00
Denys Vlasenko
76622dbd16
ash: code shrink
...
function old new delta
ulimitcmd 489 415 -74
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-10-04 01:14:19 +02:00
Denys Vlasenko
3a7034c27b
typo fix in a comment in a testcase. oh well...
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-30 02:48:59 +02:00
Denys Vlasenko
c34c033c42
ash,hush: share string
...
function old new delta
optschanged 133 139 +6
hush_main 997 982 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 6/-15) Total: -9 bytes
text data bss dec hexfilename
823160 445 7668 831273 caf29busybox_old
823102 445 7668 831215 caeefbusybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-29 12:25:30 +02:00
Denys Vlasenko
db9c57eed1
libbb/lineedit: fix the case when we configured history to have 0 lines
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-27 02:48:53 +02:00
Denys Vlasenko
e74aaf9385
ash,hush: make trap output short signal names, without SIG prefix
...
function old new delta
evalvar 1373 1371 -2
builtin_trap 457 441 -16
trapcmd 260 236 -24
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-27 02:05:45 +02:00
Denys Vlasenko
67f7186403
hush: do not reset to default "" traps in subshell
...
function old new delta
reset_traps_to_defaults 164 211 +47
builtin_umask 123 121 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-25 14:21:06 +02:00
Denys Vlasenko
4ea0ca8193
hush: document a TODO. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-25 12:58:37 +02:00
Denys Vlasenko
8f88d85e34
ash: better comment. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-25 12:12:53 +02:00
Denys Vlasenko
726e1a04f7
ash: even smaller trap
code
...
function old new delta
evalvar 1371 1373 +2
trapcmd 347 260 -87
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-25 02:58:20 +02:00
Denys Vlasenko
e305c28285
ash: slightly better (more correct) code for "trap hack"
...
function old new delta
changepath 194 195 +1
evalvar 1373 1371 -2
forkchild 602 590 -12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-25 02:12:27 +02:00
Denys Vlasenko
21d87d495a
ash: better handling of EXIT trap in trap
hack
...
function old new delta
forkchild - 602 +602
trapcmd 255 347 +92
ash_main 1362 1375 +13
evalvar 1371 1373 +2
popstring 140 134 -6
forkshell 835 248 -587
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/2 up/down: 709/-593) Total: 116 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-25 00:06:51 +02:00
Denys Vlasenko
0800e3af75
ash: do not let EXIT trap to fire in trap
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-24 03:09:26 +02:00
Denys Vlasenko
7188540257
hush: small speed optimization. +10 bytes.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-24 01:44:13 +02:00
Denys Vlasenko
2f7894b1bb
ash,hush: fix trap reporting: s/SIGEXIT/EXIT/
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-24 01:43:21 +02:00
Denys Vlasenko
606291beab
*: more portability fixes by Dan Fandrich
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-23 23:15:43 +02:00
Denys Vlasenko
1f27ab0d4b
*: optimize code size in strtoul calls
...
function old new delta
bb_parse_mode 433 431 -2
rtnl_rtntype_a2n 202 198 -4
ParseField 511 498 -13
bb_init_module_24 4730 4675 -55
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-74) Total: -74 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-23 17:17:53 +02:00
Denys Vlasenko
844f990926
ash: fix trap
...
function old new delta
forkshell 738 810 +72
popstring 134 140 +6
parse_command 1460 1463 +3
evalvar 1373 1371 -2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 81/-2) Total: 79 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-23 03:25:52 +02:00
Denys Vlasenko
91836baf85
hush: fix trap
...
function old new delta
expand_variables 2217 2280 +63
static.argv - 8 +8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-23 01:46:19 +02:00
Denys Vlasenko
69b1cef921
hush: better wording in comments. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-21 10:21:44 +02:00
Denys Vlasenko
1166d7b136
ash: fix bug 585 (>"$VAR_WITH_UNICODE_CHARS" problem)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-16 16:20:31 +02:00
Denys Vlasenko
b0d63383dd
ash: preparatory cleanup. The only real changes are (unsigned char) casts
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-16 16:18:32 +02:00
Denys Vlasenko
795633463a
add a testcase for reopened bug 585 (not fixed yet)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-16 14:04:07 +02:00
Denys Vlasenko
27726cb6aa
hush: make memleak debugging more robust
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-12 14:48:33 +02:00
Denys Vlasenko
873273da94
hush: code shrink by Dan Fandrich (dan AT coneharvesters.com)
...
function old new delta
find_function_slot - 47 +47
run_list 2508 2491 -17
find_function 40 8 -32
builtin_unset 227 165 -62
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-12 14:47:41 +02:00
Denys Vlasenko
043b1e5d99
more C standard compat fixes from Dan Fandrich
...
function old new delta
docolon 207 204 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-06 12:47:55 +02:00
Denys Vlasenko
90a9904e9e
remove some GNUisms. by Dan Fandrich (dan AT coneharvesters.com)
...
function old new delta
logdirs_reopen 1310 1308 -2
read_line_input 4757 4753 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-6) Total: -6 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-06 02:36:23 +02:00
Denys Vlasenko
6db4784d27
hush: export PWD
...
function old new delta
set_pwd_var - 36 +36
hush_main 941 951 +10
evalvar 1365 1363 -2
ash_main 1364 1362 -2
builtin_cd 75 72 -3
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/3 up/down: 46/-7) Total: 39 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-05 20:15:17 +02:00
Denys Vlasenko
a00329ca8e
ash: better comment. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-30 20:05:10 +02:00
Denys Vlasenko
7218af9f83
ash: revent one place where number() doesn't work
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-30 17:07:30 +02:00
Denys Vlasenko
ecc2a2e015
ash: deal with some TODOs (mostly trivial)
...
function old new delta
msg_illnum - 19 +19
evalvar 1365 1364 -1
illnum 19 - -19
subevalvar 1182 1158 -24
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/2 up/down: 19/-44) Total: -25 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-29 22:53:41 +02:00
Denys Vlasenko
9f2e82ad2e
ash: add testsuite for bug 585
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-29 20:37:09 +02:00
Denys Vlasenko
c8334a40c9
ash: fix handling of Unicode chars in redirects. Fixes bug 585
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-29 20:24:12 +02:00
Denys Vlasenko
b6c8434896
ash: trivial simplifications and optimizations
...
function old new delta
rmescapes - 256 +256
memtodest 94 103 +9
evalvar 1363 1365 +2
_rmescapes 256 - -256
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 2/0 up/down: 267/-256) Total: 11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-29 20:23:20 +02:00
Denys Vlasenko
a12af2d9f3
ash: make "jobs -l" more similar to bash. By Earl Chew. Fixes bug 481
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-23 22:10:04 +02:00
Denys Vlasenko
1cc4b13917
msh: aliased to hush
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-21 00:05:51 +02:00
Denys Vlasenko
0793491ff8
hush: enable "lash is deprecated, please use hush instead" message
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-20 03:40:04 +02:00
Denys Vlasenko
a67a9627d0
hush: do not process options after non-option args
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-20 03:38:58 +02:00
Denys Vlasenko
ffc39202aa
ash: fix bug 571 (jobs %string misbehaving)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-17 02:12:20 +02:00
Denys Vlasenko
dbfa45b3b2
hust test: complain if busybox binary can't be found
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-12 21:24:29 +02:00
Denys Vlasenko
cbfe6ad4c6
hush: fix \<newline> handling on NOMMU
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-12 19:47:44 +02:00
Denys Vlasenko
19679784c0
hush tests: remove the requirement that .config is in ../..
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-12 14:53:44 +02:00
Denys Vlasenko
09516066d4
hush: do not use ps -o in leak_argv1; do not hardcode path in negate
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-12 14:21:30 +02:00
Denys Vlasenko
7cee00e8ae
ash: further fixes to debug machinery (closes bug 485)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-24 01:08:03 +02:00
Denys Vlasenko
e56f22ac60
ash: make "jobs" work even in subshells
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-24 00:16:59 +02:00
Denys Vlasenko
86e83ec487
ash: fix debug machinery a bit
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-23 22:07:07 +02:00
Denys Vlasenko
252ccba948
remove msh_function.patch. msh is deprecated
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-19 01:09:42 +02:00
Denys Vlasenko
9038d6f8f5
remove trailing whitespace
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-15 20:02:19 +02:00
Denys Vlasenko
883cea4751
ash: fixes in debug printouts
...
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-11 15:31:59 +02:00
Denys Vlasenko
82a6fb3ea6
ash: fix . builtin
...
Also, move [[ ]] comment to test.c and expand it
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-14 19:42:12 +02:00
Denys Vlasenko
641dd7b080
ash: revert over-zealous usage of FAST_FUNC
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-11 19:30:19 +02:00
Denys Vlasenko
77539190ab
added comments about [[ ]] to ash and hush. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-10 14:09:48 +02:00
Denys Vlasenko
9ca656b149
hush: add HUSH_BASH_COMPAT, make [[ special handling depend on it
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-10 13:39:35 +02:00
Denys Vlasenko
9d617c44d2
hush: specially handle [[ - suppress globbing & multiword expansion
...
It's a bashism, but is surprisingly easy to do and costs very little code.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-09 18:40:52 +02:00
Denys Vlasenko
2634bf366b
randomconfig fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-09 18:40:07 +02:00
Denys Vlasenko
764b2f0ec0
hush: drop REDIRECT_INVALID; other minor tweaks
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-07 16:05:04 +02:00
Denys Vlasenko
df5131cf3d
hush: fix a segfault in export builtin
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-07 16:04:17 +02:00
Denys Vlasenko
d6b05eb9c2
hush: make builtins work in pipes (eval ... | ...) on NOMMU
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-06 20:59:55 +02:00
Denys Vlasenko
71016baf55
printf: accept negative numbers for %x; sh: overflowed numbers are 0
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-05 16:24:29 +02:00
Denys Vlasenko
d5f1b1bbe0
*: add FAST_FUNC to function ptrs where it makes sense
...
function old new delta
evalcommand 1195 1209 +14
testcmd - 10 +10
printfcmd - 10 +10
echocmd - 10 +10
func_exec 270 276 +6
echo_dg 104 109 +5
store_nlmsg 85 89 +4
pseudo_exec_argv 195 198 +3
dotcmd 287 290 +3
machtime_stream 29 31 +2
discard_stream 24 26 +2
argstr 1299 1301 +2
killcmd 108 109 +1
evalfor 226 227 +1
daytime_stream 43 44 +1
run_list 2544 2543 -1
lookupvar 62 61 -1
ipaddr_modify 1310 1309 -1
...
parse_stream 2254 2245 -9
evalpipe 356 347 -9
collect_if 210 197 -13
read_opt 869 851 -18
handle_dollar 681 658 -23
print_addrinfo 1342 1303 -39
iterate_on_dir 156 59 -97
print_route 1709 1609 -100
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 12/130 up/down: 74/-767) Total: -693 bytes
text data bss dec hex filename
841748 467 7872 850087 cf8a7 busybox_old
841061 467 7872 849400 cf5f8 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-05 12:06:05 +02:00
Denys Vlasenko
0821801349
hush: document a TODO in export builtin
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-03 14:43:56 +02:00
Denys Vlasenko
6f22624a91
hush: fix a case when backgrounded cmd makes shell hang
...
Signed-off-by: Bayram Kurumahmut <kbayram@ubicom.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-03 14:37:30 +02:00
Denys Vlasenko
295fef80bc
hush: add support for local builtin
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-03 12:47:26 +02:00
Mike Frysinger
eab40e5885
hush_test: stop mixing tabs/spaces for indentation
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-01 16:33:05 -04:00
Mike Frysinger
6a46ab8b8f
hush: unify syntax_error_unterm_{ch,str} a bit
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-01 14:16:43 -04:00
Mike Frysinger
ef3e7fdd3b
hush: push down expansion var in handle_dollar()
...
Declare the variable in the scope it is used rather than the entire
function scope so it's obvious it is only used there.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-01 14:16:43 -04:00
Mike Frysinger
dc3bc40578
hush: add support for special vars in braces
...
Some people like to use ${?} rather than $?, so make sure we support all
the special single char vars that use this form.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-01 14:16:43 -04:00
Mike Frysinger
ff64fb9e31
hush_test: filter test output to avoid C lib differences
...
The getopt function in some C libraries wraps the option in single quotes
while others do not. Avoid the issue by running sed on the output and
strip all quotes.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-01 14:16:43 -04:00
Denys Vlasenko
28a105d867
nc, hush: cosmetic cleanups, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-01 11:26:30 +02:00
Denys Vlasenko
4b7db4f2ca
read_key: drop optimization where we read 3 bytes at once
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-29 10:39:06 +02:00
Denys Vlasenko
171932d7ca
hust: trivial simplification in builtin_type
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-28 17:07:22 +02:00
Denys Vlasenko
e640cb4ad1
hush: fix bug 353 (wrong handling of \x in assignments)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-28 16:49:11 +02:00
Denys Vlasenko
5d7cca2090
hush: optimize type builtin a bit more
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-28 09:58:43 +02:00
Denys Vlasenko
dd6b211921
hush: optimize type builtin a bit
...
function old new delta
builtin_type 130 125 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-28 09:45:50 +02:00
Mike Frysinger
93cadc2fdd
hush: implement type
...
Implement support for the POSIX `type` command. Only POSIX stuff is
supported here, no bash extensions like -p or -P.
In the process, split the $PATH searching code out of builtin_source() and
into its own find_in_path() function so we don't duplicate it.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-27 17:06:25 -04:00
Denys Vlasenko
673e945052
hush: remove outdated TODO and superfluous macro; fix compile breakage
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-27 14:39:35 +02:00
Denys Vlasenko
68759edb6e
hush: tweak comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-26 14:39:41 +02:00
Denys Vlasenko
e2df5f46d0
hush: rename last_waitpid_was_0 to we_have_children
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-26 14:34:10 +02:00
Denys Vlasenko
8d7be232a3
hush: fix SIGCHLD counting code, but keep it disabled for now.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-25 16:38:32 +02:00
Denys Vlasenko
4f26c97b9a
make compound.tests executable
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-23 17:00:13 +02:00
Denys Vlasenko
e9bda90e54
hush: fix problems with case in subshells and with "case esac"
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-23 16:50:07 +02:00
Mike Frysinger
342a63d659
hush_test: add some pathological compound list tests
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 18:35:37 -04:00
Mike Frysinger
12bcc76e9b
hush_test: test for subshell function syntax
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 18:35:08 -04:00
Mike Frysinger
7b424fe738
hush_test: add subshelled case tests
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 18:09:24 -04:00
Mike Frysinger
cc9205bda7
hush_test: update test output to match new getopt() output
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 17:58:15 -04:00
Mike Frysinger
33f85eeac5
hush_test: ignore generated files
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 17:45:26 -04:00
Mike Frysinger
38478a600f
hush: fix build failure when jobs are disabled
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Reported-by: Thomas Chou <thomas@wytron.com.tw>
2009-05-20 04:48:06 -04:00
Denys Vlasenko
318a8e5ed5
TODO: add some
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-13 02:18:43 +02:00
root
6245202e7f
hush: small fix for unset -f on NOMMU.
...
Signed-off-by: root <root@localhost.localdomain>
2009-05-04 12:00:19 +02:00
Denys Vlasenko
acdc49c073
hush: add more complex case to leak testcase, fix found breakage
...
function old new delta
unset_local_var_len - 167 +167
run_list 2350 2457 +107
set_vars_and_save_old - 87 +87
free_pipe 207 227 +20
builtin_unset 220 229 +9
builtin_exit 49 47 -2
free_strings_and_unset 53 - -53
set_vars_all_and_save_old 87 - -87
unset_local_var 168 - -168
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 3/1 up/down: 390/-310) Total: 80 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-04 01:58:10 +02:00
Denys Vlasenko
cb6ff25afe
hush: fix bug where in "var=val func" var's value is not visible in func
...
function old new delta
unset_local_var - 168 +168
set_vars_all_and_save_old - 87 +87
get_ptr_to_local_var - 77 +77
free_strings_and_unset - 53 +53
builtin_export 266 274 +8
get_local_var_value 31 33 +2
putenv_all 27 - -27
free_strings_and_unsetenv 53 - -53
get_local_var 68 - -68
run_list 2475 2350 -125
builtin_unset 380 220 -160
------------------------------------------------------------------------------
(add/remove: 4/3 grow/shrink: 2/2 up/down: 395/-433) Total: -38 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-04 00:14:30 +02:00
Denys Vlasenko
e19e1935a3
hush: fix \<newline> handling
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-03 02:15:18 +02:00
Denys Vlasenko
b1cfc45376
hush: fix handling of unterminated subshell: (<eof>. Fixes bug 229.
...
function old new delta
syntax_error_unexpected_ch 31 41 +10
parse_stream 2184 2191 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 17:18:34 +02:00
Denys Vlasenko
1dd6cf8677
hush: fix multiple redirections of the same fd (bug 227)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 14:17:31 +02:00
Denys Vlasenko
54e0843e7d
hush: make . cmd search $PATH
...
function old new delta
builtin_source 128 249 +121
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 02:34:19 +02:00
Denys Vlasenko
690ad2426e
git commit test
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-04-30 21:24:24 +02:00
Denis Vlasenko
c8653f62f2
hush: make it possible to have interactive shell on non-ctty.
...
init=/bin/hush: shows prompt, history works, etc.
function old new delta
hush_main 888 925 +37
block_signals 139 152 +13
builtin_fg_bg 284 293 +9
checkjobs_and_fg_shell 35 41 +6
sigexit 65 66 +1
reset_traps_to_defaults 165 164 -1
parse_stream 2200 2184 -16
run_list 2502 2475 -27
getpgid 35 - -35
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 5/3 up/down: 66/-79) Total: -13 bytes
2009-04-27 23:29:14 +00:00
Denis Vlasenko
42e4af3119
make leak test more robust by unsetting all vars
2009-04-26 23:25:36 +00:00
Denis Vlasenko
28e67966f3
hush: make getopt32 usable in builtins. use it in unset.
...
more uses are expected in the future.
function old new delta
getopt32 1356 1393 +37
builtin_export 256 266 +10
builtin_unset 418 380 -38
2009-04-26 23:22:40 +00:00
Denis Vlasenko
572930027d
hush: nommu fix for function passing
2009-04-26 20:06:14 +00:00
Denis Vlasenko
5b7589eb27
hush: fix SEGV in % expansion
...
function old new delta
expand_variables 2203 2217 +14
2009-04-26 11:25:19 +00:00
Mike Frysinger
26cf2831d7
do not tell people they can enter "help" if help has actually been disabled
2009-04-24 06:40:30 +00:00
Mike Frysinger
67c1c7b456
use get_local_var_value() rather than getenv() when working with PS1/PS2/HOME, respect the PS2 env var, and make sure that the prompt changes whenever PS1/PS2 changes so we dont have to re-exec the shell to get a changed prompt
2009-04-24 06:26:18 +00:00
Denis Vlasenko
f9d4fc3cf8
switch_root: improve behavior on error; improve help text
...
*: make "can't execute '%s'" message uniform
2009-04-21 20:40:51 +00:00
Denis Vlasenko
950bd72966
hush: speed up set_local_var
...
function old new delta
set_local_var 265 290 +25
2009-04-21 11:23:56 +00:00
Denis Vlasenko
5e34ff29bc
*: mass renaming of USE_XXXX to IF_XXXX
...
and SKIP_XXXX to IF_NOT_XXXX - the second one was especially
badly named. It was not skipping anything!
2009-04-21 11:09:40 +00:00
Denis Vlasenko
ad4bd0548a
hush: export -n support
...
function old new delta
builtin_export 206 256 +50
set_local_var 248 265 +17
expand_variables 2204 2203 -1
2009-04-20 22:04:21 +00:00
Denis Vlasenko
d40fa397e4
hush: add two testcases
2009-04-20 10:52:31 +00:00
Denis Vlasenko
8c64e033c0
hush: fix stdin of backgrounded pipe
...
function old new delta
run_list 2450 2502 +52
2009-04-20 00:34:01 +00:00
Denis Vlasenko
dcd78c4d0f
hush: fix "export not_yet_defined_var", fix parsing of "cmd | }"
...
corner case; improve hush_leaktool.sh;
fix some false positives in testsuite
function old new delta
builtin_export 191 206 +15
parse_stream 2196 2200 +4
2009-04-19 23:07:51 +00:00
Denis Vlasenko
9f8d938172
same as previous, but -100 bytes
2009-04-19 14:03:11 +00:00
Denis Vlasenko
bf25fbccb9
hush: fix handling of } which is not a closing one in { cmd; }
...
function old new delta
parse_stream 2176 2302 +126
builtin_unset 381 387 +6
2009-04-19 13:57:51 +00:00
Mike Frysinger
885b6f29ae
fix build errors when function support is turned off
2009-04-18 21:04:25 +00:00
Denis Vlasenko
6008d8a3cc
hush: fix thinko in error msg
2009-04-18 13:05:10 +00:00
Denis Vlasenko
38e626df4d
hush: fix "trap -- handler SIGs..."; escape handlers in "trap" output
2009-04-18 12:58:19 +00:00
Denis Vlasenko
730106767e
hush: fix thinko in unset_func
2009-04-18 11:25:18 +00:00
Denis Vlasenko
40e84374ec
hush: implement unset -f; beautify the handling of signal-killed pipe
...
four TODOs are gone
function old new delta
builtin_unset 271 364 +93
checkjobs 394 428 +34
builtin_exit 49 47 -2
2009-04-18 11:23:38 +00:00
Denis Vlasenko
eb85849b50
hush: deal with umask TODO (symbolic modes)
...
function old new delta
builtin_umask 79 125 +46
2009-04-18 02:06:54 +00:00
Denis Vlasenko
6b9e05392b
hush: implement proper SIGHUP handling
...
function old new delta
check_and_run_traps 164 229 +65
insert_bg_job 376 366 -10
hush_main 937 927 -10
2009-04-18 01:23:21 +00:00
Denis Vlasenko
7b9e5c57ae
builtin_return's parameter is not unused
2009-04-17 23:53:15 +00:00
Denis Vlasenko
3d40d8e655
hush: return builtin by Bayram Kurumahmut (kbayram AT ubicom.com)
...
~+200 bytes
2009-04-17 23:44:18 +00:00
Denis Vlasenko
270b1c3f68
hush: set $n properly for "source" builtin
...
function old new delta
restore_G_args - 78 +78
save_and_replace_G_args - 64 +64
builtin_source 72 107 +35
run_list 2549 2367 -182
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/1 up/down: 177/-182) Total: -5 bytes
2009-04-17 18:54:50 +00:00
Denis Vlasenko
4ea187fd62
hush: fix non-interactive response to pipe being stopped.
...
function old new delta
checkjobs 380 394 +14
2009-04-17 14:35:43 +00:00
Denis Vlasenko
e4bd4f2cc8
hush: unblock TERM, INT, HUP in child shells too.
2009-04-17 13:52:51 +00:00
Denis Vlasenko
f8c1f02d2f
hush: disallow "{echo hi; }" (require whitespace)
...
and "{ echo hi }" (require semicolon or &)
function old new delta
parse_stream 2098 2176 +78
done_command 98 84 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 78/-14) Total: 64 bytes
2009-04-17 11:55:42 +00:00
Denis Vlasenko
fa4ca7889e
hush: add a TODO
2009-04-16 12:00:15 +00:00
Denis Vlasenko
bb929517a8
hush: fix "if { echo foo; } then { echo bar; } fi" parsing
...
function old new delta
done_word 728 793 +65
parse_stream 2084 2098 +14
2009-04-16 10:59:40 +00:00
Denis Vlasenko
74a931ac9e
hush: stop ignoring ^Z in child shells
2009-04-15 23:29:44 +00:00
Denis Vlasenko
c4ada79343
hush: remove old disabled ^Z handling
2009-04-15 23:29:00 +00:00
Denis Vlasenko
41ddecd9ed
hush: fix heredoc_huge.tests broken in last commits
2009-04-15 21:58:14 +00:00
Denis Vlasenko
c376db332c
hush: remove TODO comment itself :)
2009-04-15 21:49:48 +00:00
Denis Vlasenko
27014ed5cb
hush: deal with a TODO: move argv_from_re_execing out of globals
...
function old new delta
generate_stream_from_string 156 165 +9
setup_heredoc 312 320 +8
re_execute_shell 387 391 +4
pseudo_exec_argv 129 133 +4
run_pipe 1790 1783 -7
clean_up_after_re_execute 30 - -30
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 4/1 up/down: 25/-37) Total: -12 bytes
2009-04-15 21:48:23 +00:00
Denis Vlasenko
7f9593753a
randomconfig fixes
2009-04-14 08:06:59 +00:00
Denis Vlasenko
2b2183a77d
hush: make function support configurable
2009-04-13 14:23:12 +00:00
Denis Vlasenko
bc56974062
hush: pass functions to child shells on NOMMU
...
function old new delta
new_function - 123 +123
hush_main 1198 1262 +64
re_execute_shell 341 387 +46
run_pipe 1872 1790 -82
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/1 up/down: 233/-82) Total: 151 bytes
2009-04-12 20:35:19 +00:00
Denis Vlasenko
135cecbbce
ash: fix warning in debug build
2009-04-12 00:00:57 +00:00
Denis Vlasenko
c43430f1b9
hush: remove functions from TODOs
2009-04-11 11:07:22 +00:00
Denis Vlasenko
0701dca88c
hush: improve debugging output
2009-04-11 10:38:47 +00:00
Denis Vlasenko
ed055214bb
hush: fix "while...do f1() {a;}; f1; f1 {b;}; f1; done" bug
2009-04-11 10:37:10 +00:00
Denis Vlasenko
75bccfa375
hush: tweak tests
2009-04-10 23:48:03 +00:00
Denis Vlasenko
ce4acbbab6
hush: add function tests
2009-04-10 23:23:41 +00:00
Denis Vlasenko
6ba6f546ac
hush: pass $n to functions
...
function old new delta
run_pipe 1183 1325 +142
run_list 1219 1220 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 143/0) Total: 143 bytes
2009-04-10 21:57:50 +00:00
Denis Vlasenko
c0ea329297
hush: fix a few thinkos in function support; make it work on NOMMU;
...
functions in child shells now even have $n passed to them! :)
(in main shell it still doesn't work)
2009-04-10 21:22:02 +00:00
Denis Vlasenko
b7d8c0dbbd
hush: first stab at function support. argv passing is not coded yet.
...
Only very rudimentary testing was done.
With function support off, code growth is zero, with it on:
function old new delta
run_list 2158 2339 +181
parse_stream 1929 2044 +115
find_builtin 24 67 +43
find_function - 36 +36
file_get 244 264 +20
pseudo_exec_argv 145 160 +15
free_strings - 7 +7
free_pipe 183 181 -2
done_word 735 728 -7
expand_variables 2227 2204 -23
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/3 up/down: 417/-32) Total: 385 bytes
2009-04-10 19:05:43 +00:00
Denis Vlasenko
835fcfd33d
hush: reinstate accidentally reverted comment fix
2009-04-10 13:51:56 +00:00
Denis Vlasenko
0b677d8337
hush: fix some TODOs. TODO in export builting: +250 bytes.
...
simplify unexpected EOF handling.
function old new delta
builtin_export 117 374 +257
o_reset_to_empty_unquoted - 21 +21
parse_stream 1926 1929 +3
syntax_error_unterm_ch 31 32 +1
handle_dollar 644 641 -3
parse_stream_dquoted 307 298 -9
add_till_backquote 106 97 -9
add_till_closing_paren 303 286 -17
o_reset 21 - -21
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 3/4 up/down: 282/-59) Total: 223 bytes
2009-04-10 13:49:10 +00:00
Denis Vlasenko
1fd1ea4395
hush: tighten up "for" variable name check.
...
Add TODOs.
Disable redir4.right part where we differ from bash.
It is not a bug per standards.
Add a few tests, one is in hush-bugs section:
and_or_and_backgrounding.right. It will likely bite users
in real world usage.
2009-04-10 12:03:20 +00:00
Denis Vlasenko
551bdfecb7
hush: fix typo in comment
2009-04-10 11:13:26 +00:00
Denis Vlasenko
ed7823738c
fix segfault on syntax error code path
2009-04-10 00:45:02 +00:00
Denis Vlasenko
c96865f445
hush: readability improvements.
...
fix some more obscure bugs.
a new redir4.tests is known to fail.
2009-04-10 00:20:58 +00:00
Mike Frysinger
e05f9286a9
add test cases for parameter substitution with unset/null strings
2009-04-09 23:01:47 +00:00
Mike Frysinger
57e746781c
dont crash if the variable we do substitution on is not set
2009-04-09 23:00:33 +00:00
Denis Vlasenko
d68ae08cde
hush: shrink and make more versatile error-reporting machinery
...
function old new delta
syntax_error_unterm_ch - 31 +31
syntax_error_unterm_str - 14 +14
parse_stream 2356 2361 +5
syntax_error_at 12 14 +2
syntax_error 25 27 +2
syntax_error_unterminated 28 - -28
expand_variables 2063 2031 -32
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 3/1 up/down: 54/-60) Total: -6 bytes
text data bss dec hex filename
67278 197 3184 70659 11403 busybox_old
67228 197 3184 70609 113d1 busybox_unstripped
2009-04-09 20:41:34 +00:00
Denis Vlasenko
05d3b7cc0d
hush: deal with some easier TODOs
...
function old new delta
is_well_formed_var_name - 87 +87
builtin_read 49 86 +37
die_if_script - 31 +31
syntax_error_unterminated - 28 +28
syntax_error 26 51 +25
done_word 768 788 +20
syntax_error_at - 12 +12
parse_stream_dquoted 320 328 +8
expand_variables 2064 2063 -1
run_list 1225 1220 -5
add_till_closing_paren 308 303 -5
add_till_backquote 111 106 -5
handle_dollar 812 803 -9
parse_stream 2378 2356 -22
parse_redirect 408 372 -36
maybe_die 44 - -44
is_assignment 215 134 -81
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 4/8 up/down: 248/-208) Total: 40 bytes
2009-04-09 19:16:15 +00:00
Denis Vlasenko
1943aec2ec
hush: plug the leak of expanded heredoc
2009-04-09 14:15:57 +00:00
Denis Vlasenko
efea9d2819
hush: fix EXIT trap recursion case; check redirection failures
...
function old new delta
run_pipe 1299 1328 +29
hush_exit 90 102 +12
hush_main 1172 1179 +7
run_list 1226 1225 -1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 48/-1) Total: 47 bytes
2009-04-09 13:43:11 +00:00
Denis Vlasenko
f81e8dbc74
*: make "pragma GCC visibility push(hidden)" less ugly
2009-04-09 12:35:13 +00:00
Mike Frysinger
327fd47f36
skip some tests when fancy echo support is turned off
2009-04-09 07:50:18 +00:00
Mike Frysinger
c3d91952d6
we arent testing echo -n
here so use printf instead
2009-04-09 07:50:02 +00:00
Mike Frysinger
20300d0129
source the .config so tests can signal they need to be skipped due to feature disable
2009-04-09 07:49:43 +00:00
Denis Vlasenko
f50caac53c
hush: typo in comment
2009-04-09 01:40:15 +00:00
Denis Vlasenko
a2218dd862
hush: fix thinko in re_execute_shell; pass even less junk to heredoc helper
...
function old new delta
re_execute_shell 284 314 +30
setup_heredoc 290 303 +13
execv 23 - -23
2009-04-09 01:39:02 +00:00
Denis Vlasenko
5c090a96f9
hush: more rodust detection of unterminated strings etc;
...
fix a case where we forget to copy `cmd` text;
optimize nommu heredoc helper by not passing environment to it;
add several tests
function old new delta
add_till_closing_paren 256 308 +52
parse_stream 2337 2378 +41
add_till_backquote 82 111 +29
re_execute_shell 269 284 +15
handle_dollar 802 812 +10
parse_stream_dquoted 316 320 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 6/0 up/down: 151/0) Total: 151 bytes
2009-04-08 21:51:33 +00:00
Denis Vlasenko
ffe6f80851
expand leak_all1.tests
2009-04-08 16:59:24 +00:00
Denis Vlasenko
14725f82b6
slight tweak to the leak detector
2009-04-08 16:46:45 +00:00
Denis Vlasenko
cc90f44402
hush: plug leak in run_pipe(). NOMMU only.
2009-04-08 16:40:34 +00:00
Denis Vlasenko
08daf564ae
hush: add a leak test which currently fails
2009-04-08 12:11:23 +00:00
Denis Vlasenko
c73b70c701
hush: add leak detector helper; fix/add tests for it
...
function old new delta
builtin_memleak - 92 +92
bltins 288 300 +12
2009-04-08 11:48:57 +00:00
Denis Vlasenko
3dfb035d8d
hush: echo \2>file fix
2009-04-08 09:29:14 +00:00
Denis Vlasenko
02d6f1ad72
hush: fix heredoc expansion of $var and cmd
...
function old new delta
expand_pseudo_dquoted - 104 +104
setup_heredoc 215 275 +60
done_word 669 691 +22
parse_stream 1899 1902 +3
setup_redirects 196 191 -5
free_pipe 189 183 -6
expand_variables 2349 2229 -120
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/3 up/down: 189/-131) Total: 58 bytes
2009-04-07 19:56:55 +00:00
Denis Vlasenko
25af86f73d
hush: fix wrong comment
2009-04-07 13:29:27 +00:00
Denis Vlasenko
af07b7c5b6
hush: fix heredoc <<- handling.
...
hush-misc/heredoc2.tests testcase needs only one fix now -
$var and `cmd` expancsion in heredocs
function old new delta
parse_redirect 265 306 +41
parse_stream 1866 1899 +33
2009-04-07 13:26:18 +00:00
Denis Vlasenko
50f3aa4547
hush: NOMMU-safe support of big heredocs
...
function old new delta
setup_heredoc 116 215 +99
2009-04-07 10:52:40 +00:00
Mike Frysinger
d4a24f2aae
here documents have been added, so drop from TODO
2009-04-07 07:28:25 +00:00
Mike Frysinger
932e111418
use sleep rather than usleep
2009-04-07 06:08:14 +00:00
Mike Frysinger
b509c9c670
add a pathological test case for here doc related to eof marker and other ugly corner cases
2009-04-07 06:06:05 +00:00
Mike Frysinger
a4f331d3c3
implement support for parameter substitution via #/% operators
2009-04-07 06:03:22 +00:00
Denis Vlasenko
6c9be7f451
hush: heredoc support, based on patch by Mike Frysinger (vapier AT gentoo.org)
...
some TODOs are to be attacked later
function old new delta
parse_stream 1461 1866 +405
parse_redirect - 265 +265
setup_heredoc - 116 +116
setup_redirects 151 196 +45
builtin_exit 49 47 -2
redirect_opt_num 61 55 -6
setup_redirect 212 - -212
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/2 up/down: 831/-220) Total: 611 bytes
2009-04-07 02:29:51 +00:00
Denis Vlasenko
ab2b064342
hush: s/last_return_code/last_exitcode/g
2009-04-06 18:42:11 +00:00
Denis Vlasenko
0e15138c03
hush: fix "if false; then...fi" exitcode;
...
trim "keyword"-less hush by 10 bytes
2009-04-06 18:40:31 +00:00
Denis Vlasenko
4ed67dd3d5
make hush-misc/*.tests executable
2009-04-06 18:10:20 +00:00
Denis Vlasenko
cd418a2670
hush: fix a bunch of obscure while/until/continue bugs
...
function old new delta
run_list 1159 1214 +55
done_pipe 106 123 +17
done_command 86 98 +12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 84/0) Total: 84 bytes
2009-04-06 18:08:35 +00:00
Denis Vlasenko
8f8d013afc
*.tests should be executable
2009-04-06 16:27:51 +00:00
Denis Vlasenko
715f712d15
move hush-parsing/and-or.tests to hush-misc/*
...
(which probably needs to be renamed to hush-execution...)
2009-04-06 16:17:51 +00:00
Mike Frysinger
3a64833eb9
add some brute force logic tests
2009-04-06 14:22:54 +00:00
Denis Vlasenko
a2b11e3395
hush: fix "false && echo yes || echo no" bug 265
...
function old new delta
run_list 1159 1189 +30
2009-04-06 14:11:13 +00:00
Denis Vlasenko
0969a49c08
hush: beautify re_execute_shell more
2009-04-06 13:05:57 +00:00
Denis Vlasenko
34e573d2ce
hush: drop allocations in re_execute_shell
...
function old new delta
hush_main 1127 1138 +11
re_execute_shell 286 256 -30
clean_up_after_re_execute 66 30 -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 11/-66) Total: -55 bytes
2009-04-06 12:56:28 +00:00
Mike Frysinger
3c7167b508
add tests for basic fd open/close/dupe
2009-04-06 12:36:10 +00:00
Mike Frysinger
dc4178050a
fix #>&- syntax for closing fds
2009-04-06 12:35:41 +00:00
Mike Frysinger
9052600feb
fix redir1 tests -- usleep isnt standard in $PATH
2009-04-06 12:34:27 +00:00
Denis Vlasenko
5e883fb00d
hush: micro-optimization. -37 bytes
2009-04-06 12:28:34 +00:00
Denis Vlasenko
b1d11bf45e
hush: more efficient filtering of "safe" arithmetic
...
function old new delta
expand_variables 2170 2147 -23
2009-04-06 12:24:58 +00:00
Denis Vlasenko
d0b4a8c285
hush: add <> and () as "safe" arith chars
2009-04-06 12:09:55 +00:00
Denis Vlasenko
bfbc971f9f
hush: print cd error to stderr; use fopen_or_warn in builtin_source;
...
prepare builtin_unset for function support
libbb: do not clear errno in fopen_or_warn
function old new delta
builtin_unset 242 271 +29
fopen_or_warn 42 31 -11
builtin_cd 90 74 -16
builtin_source 89 72 -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 29/-44) Total: -15 bytes
2009-04-06 12:04:42 +00:00
Denis Vlasenko
b0a6478eef
hush: fix "export a=a b=b" (was not setting and exporting b)
...
function old new delta
builtin_export 103 117 +14
2009-04-06 11:33:07 +00:00
Denis Vlasenko
c8d27334a0
hush: update TODO list; + my usual pointless tweaks :(
2009-04-06 10:47:21 +00:00
Denis Vlasenko
d3f973eab2
hush: mark SIGHUP TODOs better; don't disable SIGHUP for now,
...
small tweaks to comments
2009-04-06 10:21:42 +00:00
Denis Vlasenko
a0e65120b5
hush: cosmetics, no code changes
2009-04-05 23:39:14 +00:00
Denis Vlasenko
913a201bf0
hush: strip NULs from file input, they are PITA/impossible to handle correctly
...
function old new delta
file_peek 89 93 +4
file_get 260 264 +4
2009-04-05 22:17:04 +00:00
Mike Frysinger
258275d85f
drop HUSH_VER_STR since it has no relevance anymore -- just use BB_VER
2009-04-05 21:19:43 +00:00
Denis Vlasenko
c4a7af55e9
hush: fix trap clearing in subshells on MMU; simplify NOMMU a bit:
...
function old new delta
parse_stream_dquoted 335 324 -11
handle_dollar 849 800 -49
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-60) Total: -60 bytes
2009-04-05 20:33:27 +00:00
Denis Vlasenko
f937528571
hush: audit and fix "interactive shell" setup code.
...
function old new delta
block_signals - 139 +139
maybe_set_to_sigexit - 47 +47
run_list 2018 2030 +12
expand_variables 2155 2165 +10
maybe_set_sighandler 47 - -47
hush_main 992 918 -74
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/1 up/down: 208/-121) Total: 87 bytes
2009-04-05 19:13:39 +00:00
Denis Vlasenko
46f9b6db80
hush: pass $! thru re-execution; try harder on re-exec; give error
...
msg if re-exec didn't work; other tweaks in main()
function old new delta
hush_main 1144 1199 +55
re_execute_shell 237 286 +49
file_get 240 260 +20
clean_up_after_re_execute 58 66 +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 132/0) Total: 132 bytes
2009-04-05 10:39:03 +00:00
Denis Vlasenko
232be3e79b
hush: suppress bogus warning from 4.2.1
2009-04-05 09:16:00 +00:00
Denis Vlasenko
18f2a79f9b
build system tweaks to account for latest hush changes
2009-04-05 09:02:11 +00:00
Denis Vlasenko
d85a5df159
hush: randomconfig fixes
2009-04-05 08:43:57 +00:00
Denis Vlasenko
cc4c693ec5
hush: plug the leak on NOMMU re-execute path
...
function old new delta
clean_up_after_re_execute - 58 +58
re_execute_shell 226 244 +18
run_pipe 1271 1276 +5
generate_stream_from_string 133 138 +5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/0 up/down: 86/0) Total: 86 bytes
2009-04-05 07:38:48 +00:00
Denis Vlasenko
c3ff48b921
fixing mode on hush-leak/leak_argv1.tests
2009-04-05 02:14:59 +00:00
Denis Vlasenko
8a496d5db0
fixing mode on hush-leak/leak_argv1.tests
2009-04-05 02:14:37 +00:00
Denis Vlasenko
30db43b5c5
hush: fix passing of $n on NOMMU
2009-04-05 02:10:39 +00:00
Denis Vlasenko
16a0c74f63
hush: fix hush-misc/break5.tests NOMMU failure
...
function old new delta
hush_main 1118 1144 +26
re_execute_shell 188 204 +16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 42/0) Total: 42 bytes
2009-04-05 01:46:59 +00:00
Denis Vlasenko
0bb4a23506
hush: fix all testsuite failures on NOMMU except memory leak.
...
known TODOs: we do not pass traps and positional args yet.
2009-04-05 01:42:59 +00:00
Denis Vlasenko
609f2ab434
hush: enable NOMMU re-execution logic. Some testsuite entries
...
fail on NOMMU. Before it was much worse.
No regressions on MMU, size:
function old new delta
handle_dollar 626 632 +6
run_list 2018 2022 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 10/0) Total: 10 bytes
2009-04-04 23:15:14 +00:00
Denis Vlasenko
9aa7d6fdc5
hush: preparatory patch for NOMMU-safe { list } handling.
...
function old new delta
o_addblock - 58 +58
o_addstr_with_NUL - 27 +27
builtin_exit 47 49 +2
run_list 2020 2018 -2
o_addstrauto 27 - -27
parse_stream 1508 1461 -47
o_addstr 58 - -58
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 1/2 up/down: 87/-134) Total: -47 bytes
2009-04-04 22:47:50 +00:00
Denis Vlasenko
34d4d89b2d
hush: fix NOMMU hangs in pseudo_exec_argv. Add forgotted setting
...
of signal mask. Reuse same help string in all shells.
function old new delta
builtin_exit 49 47 -2
pseudo_exec_argv 149 145 -4
builtin_help 74 63 -11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-17) Total: -17 bytes
text data bss dec hex filename
825379 476 7616 833471 cb7bf busybox_old
825341 476 7616 833433 cb799 busybox_unstripped
2009-04-04 20:24:37 +00:00
Denis Vlasenko
552433bc5a
hush: fix "var=val >file" not creating file
...
function old new delta
static.null_ptr - 4 +4
run_list 2018 2020 +2
handle_dollar 667 626 -41
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 6/-41) Total: -35 bytes
2009-04-04 19:29:21 +00:00
Denis Vlasenko
a24c8caeb2
hush: remove code which errors out on $- and $_, it's useless;
...
wrap some longish lines
function old new delta
handle_dollar 667 626 -41
2009-04-04 15:24:40 +00:00
Denis Vlasenko
7c9861214b
hush: remove CHAR_xxx constants
2009-04-04 12:15:42 +00:00
Denis Vlasenko
6da69cddc0
hush: get rid of charmap[]
...
function old new delta
parse_stream 1447 1508 +61
get_local_var_value - 31 +31
run_list 2018 2020 +2
pseudo_exec_argv 151 149 -2
maybe_set_sighandler 50 47 -3
hush_exit 93 90 -3
builtin_wait 275 272 -3
check_and_run_traps 169 164 -5
hush_main 985 977 -8
file_get 260 240 -20
builtin_trap 438 414 -24
set_in_charmap 30 - -30
lookup_param 31 - -31
parse_and_run_stream 153 54 -99
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 2/9 up/down: 94/-228) Total: -134 bytes
2009-04-04 12:12:58 +00:00
Mike Frysinger
dfa9de7176
simplify maybe_die() slightly
2009-04-03 22:48:10 +00:00
Denis Vlasenko
db2a9b683a
hush: finally make cmd
safe on NOMMU
...
function old new delta
generate_stream_from_string - 157 +157
expand_variables 2050 2003 -47
generate_stream_from_list 139 - -139
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/1 up/down: 157/-186) Total: -29 bytes
2009-04-03 22:31:18 +00:00
Denis Vlasenko
e0755e58ca
hush: yet another randomconfig fix
2009-04-03 21:16:45 +00:00
Denis Vlasenko
cc8289dc04
shell/math: randomconfig fix
2009-04-03 21:13:31 +00:00
Denis Vlasenko
60b392fd5b
hush: randomconfig fixes
2009-04-03 19:14:32 +00:00
Denis Vlasenko
b6e6556b31
hush: improve parse_stream: does not require parsing context struct;
...
cleans up on syntax errors (we used to leak memory in this case);
much simplified interface to the rest of hush.
function old new delta
parse_stream 1204 1447 +243
done_word 658 669 +11
static_get 22 28 +6
builtin_source 84 89 +5
parse_and_run_file 27 30 +3
parse_and_run_string 31 27 -4
builtin_eval 55 50 -5
hush_main 991 985 -6
free_pipe_list 39 31 -8
free_pipe 210 189 -21
expand_variables 2242 2199 -43
parse_and_run_stream 289 153 -136
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/7 up/down: 268/-223) Total: 45 bytes
2009-04-03 16:49:04 +00:00
Denis Vlasenko
240c255d8b
hush: simplify parse_stream
...
function old new delta
parse_and_run_stream 292 289 -3
parse_stream 1218 1204 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-17) Total: -17 bytes
2009-04-03 03:45:05 +00:00
Denis Vlasenko
3718168b87
hush: fix bug with local environment vars in pipes; simplify parse_stream()
...
function old new delta
parse_stream 1238 1218 -20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-20) Total: -20 bytes
2009-04-03 03:19:15 +00:00
Denis Vlasenko
f9f7429346
hush: explain parsing context structure
...
plug leak in setup_redirect on error path
function old new delta
done_command 84 86 +2
done_word 657 658 +1
done_pipe 105 106 +1
initialize_context 39 38 -1
setup_redirect 219 212 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/2 up/down: 4/-8) Total: -4 bytes
2009-04-03 00:07:05 +00:00
Denis Vlasenko
027e3fddb5
hush: straighten parse_stream() API a bit
...
function old new delta
parse_stream 1240 1238 -2
expand_variables 2272 2242 -30
parse_and_run_stream 338 292 -46
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-78) Total: -78 bytes
2009-04-02 22:50:40 +00:00
Mike Frysinger
a36258f288
trim trailing slashes from specified subdir so we output to the right place
2009-04-02 22:46:52 +00:00
Denis Vlasenko
b7aaae9052
hush: rename ->o_quote to ->o_escape
...
hush_test/hush-arith/*: new tests for arithmetic evaluation
2009-04-02 20:17:49 +00:00
Mike Frysinger
7a79afa3ca
Arithmetic Expansion is supported now in hush, so drop from TODO
2009-04-02 17:06:35 +00:00
Denis Vlasenko
f328e00b10
hush: do not inadvertently parse $((1 + "22")) as ok.
...
-20 bytes code size
2009-04-02 16:55:38 +00:00
Denis Vlasenko
2f1d394214
hush: make
...
a=55; echo $(($a + 1)) $((1 + $((2)) + `echo $a`))
work as expected
function old new delta
handle_dollar - 667 +667
parse_stream_dquoted - 316 +316
expand_variables 2124 2272 +148
is_assignment 134 215 +81
parse_stream 2038 1240 -798
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/1 up/down: 1212/-798) Total: 414 bytes
2009-04-02 16:31:29 +00:00
Denis Vlasenko
b29eb6ed25
shells: do not need to have math state global
...
function old new delta
ash_arith - 143 +143
expand_variables 2102 2124 +22
popstring 134 140 +6
parse_command 1460 1463 +3
trapcmd 236 238 +2
changepath 197 196 -1
raise_interrupt 86 83 -3
hush_main 1012 991 -21
ash_main 1388 1364 -24
arith_set_local_var 73 34 -39
dash_arith 117 - -117
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 4/5 up/down: 176/-205) Total: -29 bytes
2009-04-02 13:46:27 +00:00
Denis Vlasenko
0dfe1d26a9
fix ash-alias/alias.tests failure
2009-04-02 12:57:38 +00:00
Mike Frysinger
98c52645c0
split math code out of ash and into a standalone library so we can use it in any shell (like hush!)
2009-04-02 10:02:37 +00:00
Denis Vlasenko
551ffdccea
more of pointless whitespace fixes
2009-04-01 19:48:05 +00:00
Denis Vlasenko
d308106245
hust_test/*: use "$THIS_SH" instead of hush
2009-03-31 22:14:32 +00:00
Denis Vlasenko
f6fbd62760
ash: add/improve comments, no code changes
2009-03-31 19:36:58 +00:00
Denis Vlasenko
46aeab9a34
ash: fix $IFS handling in read. closes bug 235
2009-03-31 19:18:17 +00:00
Denis Vlasenko
7566bae197
hush: fix wait builtin
...
function old new delta
builtin_wait 174 275 +101
sigwaitinfo - 48 +48
__GI_sigwaitinfo - 48 +48
check_and_run_traps 133 169 +36
checkjobs 349 380 +31
hush_main 971 991 +20
static.zero_timespec - 8 +8
run_list 2010 2016 +6
file_get 254 260 +6
static.zero_ts 8 - -8
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 6/0 up/down: 304/-8) Total: 296 bytes
2009-03-31 17:24:49 +00:00
Denis Vlasenko
1b62ead313
hush: don't lie in comment
2009-03-31 13:13:17 +00:00
Denis Vlasenko
7b830e78f2
hush: fix comments, no code changes
2009-03-31 13:05:32 +00:00
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
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
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
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
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
Mike Frysinger
70a2c8d531
make lash deprecation more prominent
2009-03-28 12:12:58 +00:00
Mike Frysinger
bfc0fae952
enable most job functions on no-mmu systems
2009-03-26 18:14:16 +00:00
Mike Frysinger
b2705e1652
do not make startup banner depend on job support
2009-03-23 08:44:02 +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
424f79b48f
hush: rearrange functions to reduce amount of forward references.
...
Minimal code changes.
2009-03-22 14:23:34 +00:00
Denis Vlasenko
e1300f6fc7
hush: fix segv at repeated "set -- a b c" + "shift"
2009-03-22 11:41:18 +00:00
Denis Vlasenko
786ce17d6d
hush: fix strcpy of potentially overlapping strings
2009-03-21 21:51:11 +00:00
Denis Vlasenko
ccff0b962c
msh testsuite: fix false positive, tweak run stript
2009-03-21 19:58:58 +00:00
Denis Vlasenko
feecc7b74e
hush: tweak testsuite
2009-03-20 12:12:33 +00:00
Denis Vlasenko
a8b6dff97f
hush: fix bug 207 and "hush -c" parameter passing.
...
Now hush -c 'printf "%s\n" "$@"' (prints "\n")
and hush -c 'printf "%s\n" "$@"' qwe asd (prints "asd\n")
both work correctly
2009-03-20 12:05:14 +00:00
Denis Vlasenko
5368ad53e9
ash: expand comment
2009-03-20 10:20:08 +00:00
Denis Vlasenko
11fb7cf5af
hush: fix set [--] params. Closes bug 199.
...
function old new delta
builtin_set 55 194 +139
add_strings_to_strings - 130 +130
add_string_to_strings 110 26 -84
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 269/-84) Total: 185 bytes
2009-03-20 10:13:08 +00:00
Denis Vlasenko
1bb3d7e450
ash: add missing comma in debug scaffolding
2009-03-20 07:45:36 +00:00
Denis Vlasenko
b9e70ddf2d
ash: fix a case where we close wrong descriptor; add debug hack for that
2009-03-20 01:24:08 +00:00
Denis Vlasenko
f173395c4a
ash: DEBUG should be 0 :)
2009-03-19 23:21:55 +00:00
Denis Vlasenko
b21f379639
ash: fix TRACE commands
2009-03-19 23:09:58 +00:00
Denis Vlasenko
653d8e79b2
ash: make evaltree save/restore int suppression depth.
...
Hopefully this fixes bug 189. Not confirmed by users yet.
function old new delta
evaltree 809 842 +33
evalvar 1374 1376 +2
2009-03-19 21:59:35 +00:00
Denis Vlasenko
731de5ce76
doc update
2009-03-19 13:42:05 +00:00
Denis Vlasenko
4b875708c1
ash: in dotrap(), do not clear gotsig[] for SIGINT if there is no handler
...
for it, otherwise raise interrupt gets confused later.
The rest are readability fixes.
function old new delta
evaltreenr 817 818 +1
evaltree 817 818 +1
evalstring 88 89 +1
cmdloop 420 419 -1
evalskip 4 1 -3
breakcmd 84 81 -3
ash_main 1382 1379 -3
evalloop 183 177 -6
evalfor 231 225 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/6 up/down: 3/-22) Total: -19 bytes
2009-03-19 13:30:04 +00:00
Denis Vlasenko
7f88e34e1a
ash: tentatively fix bug 189.
2009-03-19 03:36:18 +00:00
Denis Vlasenko
5c2b81470d
ash: fix "ash -c 'exec 1>&0'" complaining that fd 0 is busy
2009-03-19 01:59:59 +00:00
Denis Vlasenko
73c571a5ff
*: move get_sock_lsa and xwrite_str to libbb, use where appropriate
...
function old new delta
get_sock_lsa - 72 +72
buffer_fill_and_print 179 196 +17
parse_expr 824 832 +8
read_base64 343 348 +5
nameval 202 206 +4
fbset_main 1694 1698 +4
expand 1849 1853 +4
udhcp_send_kernel_packet 249 252 +3
udhcp_get_option 223 222 -1
chat_main 1246 1245 -1
pack_gzip 1661 1659 -2
doset 299 297 -2
bb__parsespent 119 117 -2
test_main 260 257 -3
qgravechar 109 106 -3
tcpudpsvd_main 1834 1830 -4
sysctl_display_all 589 580 -9
xopen_xwrite_close 44 33 -11
prs 30 18 -12
find_main 418 406 -12
full_write2_str 25 12 -13
adduser_main 667 654 -13
evaltreenr 817 802 -15
evaltree 817 802 -15
tftpd_main 526 493 -33
ftpd_main 2050 1990 -60
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 7/18 up/down: 117/-211) Total: -94 bytes
2009-03-09 00:12:37 +00:00
Denis Vlasenko
9604e1b8fc
modprobe: emit "can't open 'modules.dep': (errno)" instead of "module not found"
...
*: s/can't open %s/can't open '%s'/, it's better to use same string.
function old new delta
do_modprobe 588 601 +13
config_file_action 339 345 +6
modprobe_main 565 570 +5
unable_to_open 14 16 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 26/0) Total: 26 bytes
text data bss dec hex filename
816800 476 7892 825168 c9750 busybox_old
816812 476 7892 825180 c975c busybox_unstripped
2009-03-03 18:47:56 +00:00
Denis Vlasenko
8ad78e1ec7
ash: make dot command search current directory first, as bash does.
2009-02-15 12:40:30 +00:00
Denis Vlasenko
76ddc2e3e4
libbb: add bb_unsetenv (taken from hush).
...
udhcpc: stop filtering environment passed to the script.
crond: fix uncovered potential bug (failing unsetenv)
mdev: fix uncovered potential bug (failing unsetenv)
tcp, udpsvd: fix uncovered potential bug (failing unsetenv)
function old new delta
safe_setenv - 58 +58
bb_unsetenv - 55 +55
builtin_unset 139 138 -1
tcpudpsvd_main 1843 1830 -13
free_strings_and_unsetenv 87 53 -34
udhcp_run_script 1186 1133 -53
safe_setenv4 62 - -62
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 0/4 up/down: 113/-163) Total: -50 bytes
2008-12-30 05:05:31 +00:00
Denis Vlasenko
4e12b1a2a9
libbb: introduce and use xmalloc_ttyname (-32 in bss).
...
ash: small code shrink
text data bss dec hex filename
793669 504 7524 801697 c3ba1 busybox_old
793659 504 7492 801655 c3b77 busybox_unstripped
2008-12-23 23:36:47 +00:00
Denis Vlasenko
68819d1232
ash: fix CONFIG_ASH_OPTIMIZE_FOR_SIZE off + high-bit chars case
...
(do we even need CONFIG_ASH_OPTIMIZE_FOR_SIZE conditional?)
2008-12-15 11:26:36 +00:00
Denis Vlasenko
81c3a1d0b2
ash: remove TODO which seems to actually work now.
...
no code changes
2008-12-03 11:59:12 +00:00
Denis Vlasenko
f8535ccd65
ash: finally installed it as /bin/sh on my machine.
...
some breakage noticed, the most dire is mishandled ^C.
fixing it.
function old new delta
blocking_wait_with_raise_on_sig - 40 +40
waitforjob 85 100 +15
setsignal 280 278 -2
evalvar 1376 1374 -2
waitcmd 186 182 -4
dowait 350 316 -34
redirect 1231 1185 -46
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/5 up/down: 55/-88) Total: -33 bytes
2008-12-03 10:36:26 +00:00
Denis Vlasenko
e27dafd338
ash: add FIXME
2008-11-28 04:01:03 +00:00
Denis Vlasenko
7b2294edff
ash: "ash: syntax error: XXX unexpected" -> "ash: syntax error: unexpected XXX"
2008-11-28 03:50:46 +00:00
Denis Vlasenko
41eb300ff6
ash: shrink on top of previous change
...
function old new delta
readtoken1 3201 3221 +20
xxreadtoken 306 313 +7
pungetc 13 12 -1
ash_main 1380 1379 -1
setinputfile 196 192 -4
plinno 4 - -4
parsenleft 4 - -4
parsenextc 4 - -4
parselleft 4 - -4
setinputstring 67 62 -5
pushstring 123 114 -9
pgetc 455 438 -17
pushfile 69 31 -38
popfile 114 76 -38
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 2/8 up/down: 27/-129) Total: -102 bytes
text data bss dec hex filename
798750 564 7756 807070 c509e busybox_old
798664 560 7748 806972 c503c busybox_unstripped
2008-11-28 03:42:31 +00:00
Denis Vlasenko
727752d2d2
ash: better fix for ash -c 'echo 5&' and ash -c 'sleep 5&'
...
with testcase
2008-11-28 03:41:47 +00:00
Denis Vlasenko
61befda93b
ash,hush: add TODO for rare build failure
...
*: remove some redundant includes
2008-11-25 01:36:03 +00:00
Denis Vlasenko
1689840672
ash: fix bad interaction between ash -c '....&' and bash compat
2008-11-25 01:34:52 +00:00
Denis Vlasenko
cc5feabeba
ash: NTO2 needs #if ENABLE_ASH_BASH_COMPAT
2008-11-22 01:32:40 +00:00
Denis Vlasenko
340299a8bc
ash: fix miscalculation of memory needed for eval tree
...
found by Timo Teras (timo.teras AT iki.fi)
2008-11-21 10:36:36 +00:00
Denis Vlasenko
9504e444b8
whitespace fixes, no code changes
2008-10-29 01:19:15 +00:00
Denis Vlasenko
6214941a3a
ash: add testcase for bug 5304
2008-10-27 14:33:03 +00:00
Denis Vlasenko
be54d6bc60
ash: fix "while kill -0 $child; do true; done" looping forever.
2008-10-27 14:25:52 +00:00
Denis Vlasenko
078323010b
dc: conditionalize parts which require libm
2008-10-20 08:43:10 +00:00
Denis Vlasenko
b730474bda
ash: fix NOEXEC mode - we were forgetting to pass environment!
...
env: promote to NOEXEC
hd: promote to NOEXEC, as hexdump is NOEXEC already
2008-10-20 08:15:51 +00:00
Denis Vlasenko
d1660cb9ad
ash: fix a bug in standalone mode (corrupted getopt() state)
2008-10-20 07:52:33 +00:00
Denis Vlasenko
ddc8ae3003
hush: add TODO
2008-10-14 12:50:34 +00:00
Denis Vlasenko
371de4acf7
hush: next small step towards functions
2008-10-14 12:43:13 +00:00
Denis Vlasenko
f886fd2bc7
hush: fix NOMMU bug (analogous to preceding commit for MMU)
2008-10-13 12:36:05 +00:00
Denis Vlasenko
d29084dd7d
testcase for the last fix
2008-10-13 08:54:42 +00:00
Denis Vlasenko
22d10a0292
hush: fix trashing of environment by local env vars:
...
a=a; a=b cmd; - a was unset!
+57 bytes
function old new delta
add_string_to_strings - 110 +110
putenv_all - 27 +27
run_list 2086 2111 +25
free_strings - 7 +7
free_pipe 210 208 -2
add_malloced_string_to_strings 110 - -110
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 1/1 up/down: 169/-112) Total: 57 bytes
2008-10-13 08:53:43 +00:00
Denis Vlasenko
afd7a8d744
hush: fix environment and memory leaks, add tests for them
...
function old new delta
add_malloced_string_to_strings - 110 +110
run_list 1999 2086 +87
free_strings_and_unsetenv - 87 +87
hush_version_str - 18 +18
pseudo_exec_argv 139 146 +7
static.version_str 17 - -17
free_pipe 237 210 -27
done_word 790 642 -148
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 2/2 up/down: 309/-192) Total: 117 bytes
2008-10-09 16:29:44 +00:00
Denis Vlasenko
c373527e4f
hush: preparatory work for implementing functions
2008-10-09 12:58:26 +00:00
Denis Vlasenko
9af22c7626
hush: massive renaming of ill-named structures and fields
...
hush: error out on constructs like:
$ abc(def) - was working as if it was (abcdef)
$ case b in abc(a|(b) echo YES; esac - was ignoring 'abc' and extra '('
2008-10-09 12:54:58 +00:00
Denis Vlasenko
834dee785d
ash: support &> redirection (bashism). ~90 bytes of code
2008-10-07 09:18:30 +00:00
Denis Vlasenko
176d49d4f7
ash: some beautification work, no code changes
2008-10-06 09:51:47 +00:00
Denis Vlasenko
559691a3bf
ash: implement ">&file" bashism. ~100 bytes.
2008-10-05 18:39:31 +00:00
Denis Vlasenko
d6855d1b50
style fixes, no code changes
2008-09-27 14:03:25 +00:00
Bernhard Reutner-Fischer
864329d674
- fix compilation on OSF/1
2008-09-25 10:55:05 +00:00
Denis Vlasenko
34c73c499b
ash: fix "(cat < file)" hang introduced by rev 22944.
2008-08-16 11:48:02 +00:00
Bernhard Reutner-Fischer
1dbc643dd3
- fix typo
2008-08-06 17:39:30 +00:00
Denis Vlasenko
2b576b8e76
hush: fix mishandling of a'b'c=fff as assignments. They are not.
...
function old new delta
parse_stream 1920 2004 +84
done_word 715 752 +37
parse_and_run_stream 328 333 +5
builtin_exec 25 29 +4
pseudo_exec_argv 138 139 +1
run_list 2006 1999 -7
is_assignment 215 134 -81
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/2 up/down: 131/-88) Total: 43 bytes
2008-08-04 00:46:07 +00:00
Denis Vlasenko
c8bec9a085
hush: remove a comment about already fixed bug
2008-08-03 22:27:50 +00:00
Denis Vlasenko
d498131168
hush: support $_NUMBERS variable names
2008-07-31 10:34:48 +00:00
Denis Vlasenko
f173607520
hush: fix "case ... in <newline> word)..."
2008-07-31 10:09:26 +00:00
Denis Vlasenko
fbeeb328b8
hush: support "pattern1|pattern2...)" in case statements
...
parse_stream 1847 1861 +14
run_list 1995 2006 +11
2008-07-31 00:17:01 +00:00
Denis Vlasenko
c90e1be01b
ash: bash compat: "shift $BIGNUM" is equivalent to "shift 1"
2008-07-30 15:35:05 +00:00
Denis Vlasenko
4f504a9e57
hush: trivial code shrink
...
function old new delta
builtin_continue 48 22 -26
2008-07-29 19:48:30 +00:00
Denis Vlasenko
87a8655f46
hush: use G.xxx instead of #define xxx G.xxx. We have too many globals
...
there and #defines get messy. Remove one write-only G.variable.
2008-07-29 19:43:10 +00:00
Denis Vlasenko
ff29b4fc42
randomconfig fix
2008-07-29 13:57:59 +00:00
Denis Vlasenko
4554b721ad
hush: small fix for repeated continue and fix for wrong loop depth count
...
after Ctrl-C; with testcase for first one
2008-07-29 13:36:09 +00:00
Denis Vlasenko
45cb9f9581
hush: fix inverted check (was making all break's to act as "break 99999")
2008-07-29 11:47:46 +00:00
Denis Vlasenko
fcf37c3183
hush: fix break'ing out of {} and () groups; with testcase
...
function old new delta
builtin_break 93 129 +36
builtin_continue 21 47 +26
run_list 1973 1976 +3
2008-07-29 11:37:15 +00:00
Denis Vlasenko
d91afa33fd
randomconfig fixes
2008-07-29 11:10:01 +00:00
Denis Vlasenko
dadfb4975b
hush: add #defines to switch off break/continue if loops are not supported
...
*: remove a few inline keywords
no code changes
2008-07-29 10:16:05 +00:00
Denis Vlasenko
918a34b9e0
hush: fix "while false; ..." exitcode; add testsuites
2008-07-28 23:17:31 +00:00
Denis Vlasenko
6a2d40f239
hush: support "break N" and "continue N"
...
fix non-detection of builtins and applets in "v=break; ...; $v; ..." case
add testsuite entries for the above
function old new delta
builtin_break 12 93 +81
run_list 1948 1971 +23
builtin_continue 12 21 +9
pseudo_exec_argv 132 138 +6
builtin_exec 23 25 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 121/0) Total: 121 bytes
2008-07-28 23:07:06 +00:00
Denis Vlasenko
bcb25537d0
hush: implement break and continue
...
function old new delta
bltins 252 276 +24
builtin_continue - 12 +12
builtin_break - 12 +12
static.version_str 18 17 -1
run_list 1984 1948 -36
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/2 up/down: 48/-27) Total: 11 bytes
2008-07-28 23:04:34 +00:00
Denis Vlasenko
cf22c89f9a
hush: in run_list(), some loop_top ops seems to be superfluous.
...
comment them out. Also, use separate temp variable
for verification loop, helps gcc to optimize better.
function old new delta
run_list 2039 1984 -55
2008-07-28 15:17:44 +00:00
Denis Vlasenko
12acec5ad4
hush: in run_list(), last_cond_code seems to be superfluous. comment it out
...
function old new delta
run_list 2055 2039 -16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-16) Total: -16 bytes
2008-07-28 15:15:59 +00:00
Denis Vlasenko
5e052cab17
hush: explain run_list() in detail; small optimizations
...
function old new delta
hush_main 785 786 +1
expand_variables 1447 1448 +1
builtin_exit 48 49 +1
builtin_eval 54 55 +1
run_list 2075 2055 -20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 4/-20) Total: -16 bytes
2008-07-28 15:15:09 +00:00