Bernhard Reutner-Fischer
|
864329d674
|
- fix compilation on OSF/1
|
2008-09-25 10:55:05 +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
|
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 |
|
Denis Vlasenko
|
be709c24d4
|
hush: finish and enable optional case...esac support. Code size cost:
function old new delta
run_list 1891 2075 +184
parse_stream 1764 1847 +83
expand_strvec_to_string - 83 +83
done_word 647 715 +68
static.reserved_list 144 168 +24
static.reserved_match - 12 +12
done_pipe 95 105 +10
builtin_exit 48 46 -2
builtin_eval 127 54 -73
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/2 up/down: 464/-75) Total: 389 bytes
|
2008-07-28 00:01:16 +00:00 |
|
Denis Vlasenko
|
5415c856ea
|
libbb: [x]fopen_for_{read,write} introduced and used.
(by Valdimir)
function old new delta
config_open2 - 41 +41
config_read 507 542 +35
find_pair 169 187 +18
fopen_for_write - 14 +14
fopen_for_read - 14 +14
find_main 406 418 +12
xfopen_for_write - 10 +10
xfopen_for_read - 10 +10
popstring 134 140 +6
parse_inittab 396 401 +5
next_token 923 928 +5
pack_gzip 1659 1661 +2
bb__parsespent 117 119 +2
fallbackSort 1719 1717 -2
evalvar 1376 1374 -2
qrealloc 36 33 -3
...
...
...
...
singlemount 4579 4569 -10
process_stdin 443 433 -10
patch_main 1111 1101 -10
ifupdown_main 2175 2165 -10
file_action_grep 90 80 -10
uuidcache_init 649 637 -12
hush_main 797 785 -12
read_config 230 217 -13
dpkg_main 3835 3820 -15
read_line_input 3134 3110 -24
sysctl_main 232 203 -29
config_open 40 10 -30
WARN_BAD_LINE 44 - -44
login_main 1714 1575 -139
------------------------------------------------------------------------------
(add/remove: 5/1 grow/shrink: 8/74 up/down: 174/-737) Total: -563 bytes
|
2008-07-21 23:05:26 +00:00 |
|
Bernhard Reutner-Fischer
|
a53de7f7c2
|
- fix spelling
|
2008-07-21 13:46:54 +00:00 |
|
Denis Vlasenko
|
757361f9f5
|
hush: fix "... pattern) cmd;; esac" case
|
2008-07-14 08:26:47 +00:00 |
|
Denis Vlasenko
|
395ae45216
|
hush: delete unused field in struct child.
reinstate needed check for invalid syntax.
document command parsing in hush_doc.txt.
|
2008-07-14 06:29:38 +00:00 |
|
Denis Vlasenko
|
17f02e79f4
|
hush: add case statement support. It is incomplete and disabled for now.
costs ~300 bytes when enabled.
|
2008-07-14 04:32:29 +00:00 |
|
Denis Vlasenko
|
6bdff08e6c
|
hush: compile fixes for !LOOPS case
|
2008-07-09 20:14:53 +00:00 |
|
Denis Vlasenko
|
733e3fbc2f
|
hush: support "for if in do done then; do echo $if; done" case
function old new delta
done_pipe 83 95 +12
parse_stream 1758 1764 +6
done_word 674 647 -27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 18/-27) Total: -9 bytes
|
2008-07-06 10:01:13 +00:00 |
|
Denis Vlasenko
|
ff182a3d68
|
hush: support "for v; do ... done" syntax (implied 'in "$@"')
|
2008-07-05 20:29:59 +00:00 |
|
Denis Vlasenko
|
afdcd12ed7
|
hush: fix a case where "$@" must expand to no word at all
|
2008-07-05 17:40:04 +00:00 |
|
Denis Vlasenko
|
a60f84ebf0
|
*: rename ATTRIBUTE_XXX to just XXX.
|
2008-07-05 09:18:54 +00:00 |
|
Denis Vlasenko
|
82604e9730
|
revert last two commits. vfork cannot be used in subroutine,
it trashes stack on return
|
2008-07-01 15:59:42 +00:00 |
|
Denis Vlasenko
|
58d60c3333
|
*: introduce and use xfork()
function old new delta
xfork - 20 +20
msh_main 1377 1380 +3
mod_process 455 446 -9
forkexit_or_rexec 30 17 -13
expand_variables 1434 1421 -13
open_transformer 91 76 -15
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/4 up/down: 23/-50) Total: -27 bytes
|
2008-07-01 11:11:24 +00:00 |
|
Denis Vlasenko
|
3da5572bfa
|
*: introduce and use xvfork()
function old new delta
time_main 1052 1285 +233
crontab_main 623 856 +233
ifupdown_main 2202 2403 +201
xvfork - 20 +20
passwd_main 1049 1053 +4
grave 1068 1066 -2
script_main 935 921 -14
vfork_or_die 20 - -20
vfork_compressor 206 175 -31
open_as_user 109 - -109
popen2 218 - -218
edit_file 910 690 -220
run_command 268 - -268
------------------------------------------------------------------------------
(add/remove: 1/4 grow/shrink: 4/4 up/down: 691/-882) Total: -191 bytes
|
2008-07-01 10:40:41 +00:00 |
|
Denis Vlasenko
|
defc1ea340
|
*: introduce and use FAST_FUNC: regparm on i386, otherwise no-on
text data bss dec hex filename
808035 611 6868 815514 c719a busybox_old
804472 611 6868 811951 c63af busybox_unstripped
|
2008-06-27 02:52:20 +00:00 |
|
Denis Vlasenko
|
7049ff8696
|
whitespace fixes. no code changes
|
2008-06-25 09:53:17 +00:00 |
|
Denis Vlasenko
|
5ec6132c98
|
hush: ifdef out parts which are not needed
if neither loops nor ifs are supported. Code savings:
function old new delta
parse_stream 1758 1757 -1
checkjobs 335 318 -17
done_pipe 74 52 -22
expand_variables 1437 1407 -30
run_list 1232 1189 -43
parse_and_run_stream 328 267 -61
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/6 up/down: 0/-174) Total: -174 bytes
|
2008-06-24 00:50:07 +00:00 |
|
Denis Vlasenko
|
003f9fb213
|
hush: kill some old unused fields; small code shrink
function old new delta
builtin_exit 48 47 -1
checkjobs 351 335 -16
checkjobs_and_fg_shell 60 35 -25
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-42) Total: -42 bytes
|
2008-06-24 00:47:58 +00:00 |
|
Denis Vlasenko
|
cc3f20b9bd
|
fix breakage found by randomconfig
|
2008-06-23 22:31:52 +00:00 |
|
Denis Vlasenko
|
211b59be43
|
hush: trivial fix in debug code
|
2008-06-23 16:28:53 +00:00 |
|
Denis Vlasenko
|
324a3fdf87
|
fix globbing in unquoted $* and $@
|
2008-06-18 17:49:58 +00:00 |
|
Denis Vlasenko
|
55789c6646
|
hush: fix a bug with backslashes improperly handled in unquoted variables.
with previous patch:
function old new delta
parse_stream 1638 1758 +120
expand_on_ifs 97 174 +77
free_pipe 206 237 +31
setup_redirect 217 220 +3
setup_redirects 143 144 +1
done_word 698 688 -10
free_strings 38 - -38
expand_variables 1451 1403 -48
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 5/2 up/down: 232/-96) Total: 136 bytes
|
2008-06-18 16:30:42 +00:00 |
|
Denis Vlasenko
|
ab876cd107
|
hush: add testsuite for "no globbing in redirection" rule.
simplify redirection habdling
|
2008-06-18 16:29:32 +00:00 |
|
Denis Vlasenko
|
c1c63b622d
|
hush: fix last hush-bugs testcase (disappearing "", $empty"" etc)
|
2008-06-18 09:20:35 +00:00 |
|
Denis Vlasenko
|
16c2fea280
|
hush: fix $$ handling
|
2008-06-17 12:28:44 +00:00 |
|
Denis Vlasenko
|
6eaf8deddd
|
hush: fix "for a in; do echo 'I should never run'; done" bug
|
2008-06-17 12:09:21 +00:00 |
|
Denis Vlasenko
|
30c9cc5b17
|
hush: continue fixing quoting and subst: fix glob_and_assign.tests.
|
2008-06-17 07:24:29 +00:00 |
|
Denis Vlasenko
|
c7985b76c5
|
hush: cleanup pass, the biggest is - moved builtins to the end of the file,
they really annoy in the middle of parser code. no real code changes.
|
2008-06-17 05:43:38 +00:00 |
|
Denis Vlasenko
|
b61e13d247
|
hush: fix memory leak. it was actually rather invloved problem.
Now finally glob/variable expansion is done IN THE RIGHT ORDER!
It opens up a possibility to cleanly fix remaining known bugs.
function old new delta
o_save_ptr 115 286 +171
o_save_ptr_helper - 115 +115
done_word 591 690 +99
o_get_last_ptr - 31 +31
expand_on_ifs 125 97 -28
add_string_to_strings 28 - -28
run_list 1895 1862 -33
debug_print_strings 42 - -42
add_strings_to_strings 126 - -126
expand_variables 1550 1394 -156
o_debug_list 168 - -168
expand_strvec_to_strvec 388 10 -378
------------------------------------------------------------------------------
(add/remove: 2/4 grow/shrink: 2/4 up/down: 416/-959) Total: -543 bytes
|
2008-06-17 05:11:43 +00:00 |
|
Denis Vlasenko
|
ccce59d562
|
hush: fixing fallout from last big glob fix:
fix segfault; identify where we leak memory
function old new delta
expand_strvec_to_strvec 353 336 -17
|
2008-06-16 14:35:57 +00:00 |
|