Denis Vlasenko
fcfaf2e18a
ash: small size optimization
...
function old new delta
makejob 263 270 +7
setjobctl 328 332 +4
jobscmd 96 94 -2
stoppedjobs 53 50 -3
jobctl 4 1 -3
job_warning 4 1 -3
forkshell 644 641 -3
cmdloop 422 409 -13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/6 up/down: 11/-27) Total: -16 bytes
text data bss dec hex filename
675392 2740 13968 692100 a8f84 busybox_old
675380 2740 13968 692088 a8f78 busybox_unstripped
2007-07-14 18:45:37 +00:00
Denis Vlasenko
8fdc4b7b06
ash: recognize -l as --login equivalent; do not recognize +-login
2007-07-14 11:33:10 +00:00
Denis Vlasenko
40ba9984fd
ash: fix for buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds@gmail.com>)
2007-07-14 00:48:29 +00:00
Denis Vlasenko
1fc6238ffa
devfsd: fix formatting (Tito <farmatito@tiscali.it>)
...
ash: fix SEGV if type has zero parameters
2007-06-25 22:55:34 +00:00
Denis Vlasenko
80b8b39899
Consolidate ARRAY_SIZE macro; remove one unneeded global var (walter harms <wharms@bfs.de>)
2007-06-25 10:55:35 +00:00
Denis Vlasenko
b304eadca8
test: shrink a bit
...
function old new delta
test_main 5 434 +429
bb_test 473 - -473
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 429/-473) Total: -44 bytes
text data bss dec hex filename
735073 3028 14408 752509 b7b7d busybox_old
735029 3028 14408 752465 b7b51 busybox_unstripped
2007-06-21 13:35:52 +00:00
Denis Vlasenko
ca525b4f24
*: BB_BANNER -> bb_banner (it is not a const or #define)!
...
correct_password: explain in detail why it is ok to use bb_banner
fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one
Marginal size difference:
text data bss dec hex filename
679119 2700 15632 697451 aa46b busybox_old
679091 2700 15632 697423 aa44f busybox_unstripped
2007-06-13 12:27:17 +00:00
Denis Vlasenko
d67cef2425
hush: fix read builtin to not read ahead past eol and to not use
...
insane amounts of stack. Testsuite updated.
2007-06-13 06:47:47 +00:00
Denis Vlasenko
f5f75c5e82
remove nearly-duplicate PATHs in several places
...
function old new delta
bb_PATH_root_path - 35 +35
varunset 60 58 -2
arith 2042 2033 -9
bb_default_root_login_path 30 - -30
.rodata 128794 128762 -32
which_main 152 117 -35
defpathvar 40 - -40
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 0/4 up/down: 35/-148) Total: -113 bytes
2007-06-12 22:35:19 +00:00
Denis Vlasenko
15611bb958
A few more string duplicates found & eliminated
...
# size busybox_old busybox_unstripped
text data bss dec hex filename
679693 2700 15632 698025 aa6a9 busybox_old
679523 2700 15632 697855 aa5ff busybox_unstripped
2007-06-12 08:52:02 +00:00
Denis Vlasenko
bdbbb7ec49
make busybox --install work even if /proc/self/exe doesn't exist
...
# size busybox_old busybox_unstripped
text data bss dec hex filename
680095 2704 15648 698447 aa84f busybox_old
680099 2704 15648 698451 aa853 busybox_unstripped
2007-06-08 15:02:55 +00:00
Denis Vlasenko
42bffbf360
hush: add missing dependencies (Maxime Bizon <mbizon@freebox.fr> (Freebox))
2007-06-08 08:02:53 +00:00
Denis Vlasenko
fad2b86c9e
use "glibc errno" trick not only for ash, but for entire busybox
...
(add/remove: 1/1 grow/shrink: 37/37 up/down: 139/-228) Total: -89 bytes
2007-05-31 22:16:38 +00:00
Denis Vlasenko
27f79ff03d
hush: trivial buglet found by randomconfig testing
2007-05-30 00:55:52 +00:00
Denis Vlasenko
4b924f3a5c
whitespace fixes
2007-05-30 00:29:55 +00:00
Denis Vlasenko
b6adbf1be2
usage.c: remove reference to busybox.h
...
*: s/include "busybox.h"/include "libbb.h"
2007-05-26 19:00:18 +00:00
Denis Vlasenko
5a6aeddfa7
xpipe: introduce (saves ~170 bytes)
...
udhcp/signalpipe.c: use pipe instead of socketpair.
2007-05-26 16:44:20 +00:00
Denis Vlasenko
ba7cf260fd
hush: fix 'echo abcsleep 5
def' + Ctrl-Z and Ctrl-C bugs. +50 bytes of code.
2007-05-25 14:34:30 +00:00
Denis Vlasenko
0a83fc3984
hush: avoid duplicating HUSH_VERSION
2007-05-25 11:12:32 +00:00
Denis Vlasenko
201c72a8d6
hush: micro-optimization in new variable code
2007-05-25 10:00:36 +00:00
Denis Vlasenko
28c0f0f4fe
hush: we can't do without variable->value member, saving 25 bytes of code
...
and some runtime memory. Rename few variables.
2007-05-25 02:46:01 +00:00
Denis Vlasenko
d76c049cc4
hush: rework variable storage and environment handling.
...
More that -100 bytes of code + memory leak plugged.
Added a testcase for it.
2007-05-25 02:16:25 +00:00
Denis Vlasenko
163a855731
hush: update README with yet another failure case
2007-05-24 13:52:46 +00:00
Denis Vlasenko
5a1437d835
hush: fix segfaulting syntax error in interactive hush
2007-05-24 13:22:47 +00:00
Denis Vlasenko
cd7f4d27a2
hush: improve 2 testsuite tests
2007-05-24 13:22:01 +00:00
Denis Vlasenko
2b6bbad4db
hush: add 2 tests for correct syntax error reporting
2007-05-24 12:26:39 +00:00
Denis Vlasenko
b055001b6a
hush: fix handling of unmatched ${name (without closing '}') -
...
was eating all remaining input, potentially megabytes.
nofork: save/restore die_jmp too
nofork: use -2222 instead of -111 as "special" return valur for zero
(-111 is used by some applets. -2222 won't fit in exitcode and thus safer)
2007-05-24 12:18:16 +00:00
Denis Vlasenko
90e485ce79
hush: make syntax error messages a bit more useful
2007-05-23 15:22:50 +00:00
Denis Vlasenko
1744cb1861
hush: prepare testsuite for new, fixed error message format
2007-05-23 15:16:41 +00:00
Denis Vlasenko
170435c575
hush: fix job control with eval /bin/external_prog
...
hush: fix parsing of unterminated "str with no EOL
hush: improved make_string() (smaller, faster, needs less RAM)
hush: renamed several functions
2007-05-23 13:01:10 +00:00
Denis Vlasenko
1a7358612f
hush: fix a bit different instance of "No EOL" bug,
...
add testsuite for that. Expand another testsuite.
2007-05-23 00:32:25 +00:00
Denis Vlasenko
94dace3016
fix execute bit on hush-misc/shift.tests
2007-05-23 00:26:32 +00:00
Denis Vlasenko
0681033918
hush: add 3 CONFIG_xxx, allowing for smaller and less capable hush.
...
Minimal hush is ~9k now (lash is ~7k).
2007-05-21 23:30:54 +00:00
Denis Vlasenko
8805eeb44a
shells: update README and testsuite. environment memory leak
...
needs to be fixed - and documented!
2007-05-21 10:19:48 +00:00
Denis Vlasenko
219e88d050
hush: using smallints where we can. save ~20 bytes in code and
...
some data storage at runtime.
2007-05-21 10:18:23 +00:00
Denis Vlasenko
004baba2d6
hush: fix shift + $0 bug; add testcase
2007-05-20 22:22:18 +00:00
Denis Vlasenko
262d765351
hush: trivial size optimization
2007-05-20 21:52:49 +00:00
Denis Vlasenko
14b5dd9943
hush: make process substitution configurable; add a testcase
2007-05-20 21:51:38 +00:00
Denis Vlasenko
46846e25a4
ash: implement type -p, costs less than 10 bytes
...
(patch by Mats Erik Andersson <mats.andersson64@comhem.se>)
2007-05-20 13:08:31 +00:00
Denis Vlasenko
6d709972cd
cttyhack: new applet.
2007-05-18 09:45:36 +00:00
Denis Vlasenko
5b34083004
several *.c files:
...
move 'extern environ' up to the location of #includes
2007-05-17 23:02:14 +00:00
Denis Vlasenko
c8be5ee325
hush: do "struct globals" trick. hush.o data+bss = 0 bytes now.
...
+60 bytes to image, but -8000 bytes in bss.
2007-05-17 15:38:46 +00:00
Denis Vlasenko
b6a741ffa7
hush: consolidated variable expansion for assignments and "normal" one.
...
-435 bytes. Tested against testsuite.
2007-05-17 14:38:17 +00:00
Denis Vlasenko
96f67dc69d
more compile fixes from randomconfig run
2007-05-17 13:02:41 +00:00
Denis Vlasenko
c666f71e3b
hush: take care of several easy FIXMEs. -228 bytes.
2007-05-16 22:18:54 +00:00
Denis Vlasenko
831dcc439c
hush: another microscopic typo fix
2007-05-16 15:05:36 +00:00
Denis Vlasenko
c29903221d
hush: fix English in comment
2007-05-16 12:57:12 +00:00
Denis Vlasenko
3e7b0e6120
hush: simplify read builtin; fix set_local_var (misplaced 'goto skip;')
2007-05-16 12:52:15 +00:00
Denis Vlasenko
1f4cf517f5
hush: fix expansion of quoted $VAR, $* and $@
2007-05-16 10:39:24 +00:00
Denis Vlasenko
8f6bdb42df
hush: fix incorrect processing of echo "'$var'".
...
hush: rename map[] and MAP_xxx, making them easier to understand.
hush: move testcase (which now passes) from hush-bugs to hush-parsing
2007-05-16 09:36:55 +00:00
Denis Vlasenko
d6050949b8
hush: move testsuite files from hush-bugs to hush-parsing
...
(as these bugs are now fixed)
2007-05-14 22:09:52 +00:00
Denis Vlasenko
764d59d488
hush: more fixes to variable expansion, more testcases
2007-05-14 16:23:23 +00:00
Denis Vlasenko
03eb8bf6ce
hush: move towards more correct variable expansion
...
hush: fix a few cases in FOR v IN ... construct
unfortunately, code growth is big - ~600 bytes
2007-05-14 16:19:34 +00:00
Denis Vlasenko
602d13cba5
hush: fix '{ false; echo $?; }' bug.
...
hush: expand testsuite. variable expansion is still very broken
2007-05-13 18:34:53 +00:00
Denis Vlasenko
119b995437
hush: reinstate hush_test, add testcases for process subst
2007-05-11 12:57:35 +00:00
Denis Vlasenko
3e9aaae5dc
hush: fix bug in interactive shell introduced yesterday
...
hush: fix `process subst` (2 bugs)
NB: will delete and re-add hush_test in order to change file modes
2007-05-11 12:56:43 +00:00
Denis Vlasenko
e0a336747c
hush: fix "unterminated last line loops forever" bug
...
hush: add testsuite infrastructure
2007-05-10 23:06:55 +00:00
Denis Vlasenko
53079d494e
hush: fix recent breakage (VAR=VAL stopped working)
2007-05-10 23:05:28 +00:00
Denis Vlasenko
2b54aaa9bf
msh: fix obscure case with backticks and closed fd 1
2007-05-09 22:16:08 +00:00
Denis Vlasenko
92c0b8222e
tail: fix SEGV on "tail -N"
...
config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text
2007-05-08 17:27:17 +00:00
Denis Vlasenko
21f0d4c55e
hush: fix double-free in "echo TEST &"
2007-05-06 14:15:42 +00:00
Denis Vlasenko
dd4cb2b31e
hush: stop generating extra empty pipes in parse stage.
2007-05-05 15:11:40 +00:00
Denis Vlasenko
a6c467f6d1
hush: preparatory patch for removing extra empty pipes generation
...
in parse stage. No real code change here.
2007-05-05 15:10:52 +00:00
Denis Vlasenko
ac0e5ab96a
hush: fix "while true; do true; done" + ctrl-z
2007-05-04 21:37:27 +00:00
Denis Vlasenko
3349fc4da9
applets: fix compile-time warning
2007-05-04 14:54:36 +00:00
Denis Vlasenko
400c5b6fc6
hush: add parse tree debug print
2007-05-04 13:07:27 +00:00
Denis Vlasenko
e725bfe6e0
hush: fix "true | exit 3; echo $?" bug
2007-05-03 22:45:39 +00:00
Denis Vlasenko
f2fffd0014
hush: remove env builtin (it is buggy). Add comments
2007-05-02 23:39:04 +00:00
Denis Vlasenko
d01ff13454
hush: simplify debugging prints a little bit
2007-05-02 21:40:23 +00:00
Denis Vlasenko
4ac530c0ef
hush: add debugging for tracing execution,
...
add FIXME for 'true | exit 3; echo $?' case
2007-05-02 15:35:45 +00:00
Denis Vlasenko
ef36ead370
hush: fix incorrect exitcodes without job control
2007-05-02 15:34:47 +00:00
Denis Vlasenko
f20de5bb42
ash,kill: use common code for kill applet/builtin
...
# make bloatcheck
function old new delta
evaltreenr 644 654 +10
evaltree 644 654 +10
parse_conf 1440 1444 +4
dpkg_deb_main 426 429 +3
ed_main 3319 3321 +2
passwd_main 2093 2091 -2
kill_main 830 826 -4
singlemount 4609 4601 -8
find_command 962 954 -8
get_lcm 123 105 -18
.rodata 132243 132147 -96
killcmd 449 120 -329
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/7 up/down: 29/-465) Total: -436 bytes
# size busybox_old busybox_unstripped
text data bss dec hex filename
723901 2940 27504 754345 b82a9 busybox_old
723457 2940 27504 753901 b80ed busybox_unstripped
2007-04-29 23:42:54 +00:00
Denis Vlasenko
08c8c1d3b3
ash: fix infinite loop on exit if tty is not there anymore
2007-04-28 22:39:02 +00:00
Denis Vlasenko
e3f2f89891
hush: make job control and interactiveness configurable, part 2
2007-04-28 16:48:27 +00:00
Denis Vlasenko
b81b3df1fa
hush: make job control and interactiveness configurable, part 1
2007-04-28 16:48:04 +00:00
Denis Vlasenko
0937be5fa6
hush: make hush properly detect EOF on stdin (even interactive one -
...
think about pty being destroyed) and exit.
2007-04-28 16:47:08 +00:00
Denis Vlasenko
b5eaabb322
hush: add Ctrl-C handling to nofork case
2007-04-28 16:45:59 +00:00
Denis Vlasenko
3ac0e00553
hush: better signal handling across ctrl-z
2007-04-28 16:45:22 +00:00
Denis Vlasenko
18e19f2b0d
hush: fix nofork + ctrl-Z clobbering of globals
2007-04-28 16:43:18 +00:00
Denis Vlasenko
a6a1785a30
hush: add ctrl-Z handling for nofork'ed case
2007-04-28 16:42:11 +00:00
Denis Vlasenko
1359da6ac7
hush: make Ctrl-Z work (at least sometimes)
2007-04-21 23:27:30 +00:00
Denis Vlasenko
762d35c75f
hust: add a comment
2007-04-21 17:28:51 +00:00
Denis Vlasenko
52881e9f23
hush: fix more backgrounding bugs. Plenty of them remains still.
2007-04-21 13:42:52 +00:00
Denis Vlasenko
2f1bb36a55
hush: explain why "pipe; exit $?" doesn't show correct exitcode
2007-04-21 10:01:14 +00:00
Denis Vlasenko
87cb2db703
hush: do not print message if killed by signal;
...
move some functions up before main()
2007-04-21 10:00:01 +00:00
Denis Vlasenko
54e7ffb3a4
hush: begin fixing non-functional job control
2007-04-21 00:03:36 +00:00
Denis Vlasenko
5f786c24e4
hush: small code shrink; style fixes
2007-04-20 08:35:45 +00:00
Denis Vlasenko
d1801a4430
dd: fix skip= parse error (spotted by Dirk Clemens <develop@cle-mens.de>)
2007-04-19 20:08:19 +00:00
Denis Vlasenko
05a6d9cbb2
doc: add README on shell job control
2007-04-19 17:26:34 +00:00
Denis Vlasenko
516a0ca2dc
ps: add -o tty and -o rss support
...
1373 14 24 1411 583 busybox.t1/procps/ps.o
1462 14 24 1500 5dc busybox.t2/procps/ps.o
2007-04-19 14:46:14 +00:00
Denis Vlasenko
55b2de71d7
hush: remove stray semicolon (should change nothing)
2007-04-18 17:21:28 +00:00
Denis Vlasenko
7d4c44e1b1
shells: remove few statics and duplicated code
...
(much more of the same remains, alas)
function old new delta
doset 330 332 +2
warn 53 51 -2
onecommand 463 461 -2
ioecho 40 38 -2
forkexec 1412 1410 -2
err 81 79 -2
setdash 59 56 -3
flag 4 - -4
msh_main 1389 1384 -5
eval 388 381 -7
subgetc 759 747 -12
static.local 14 - -14
b_adduint 70 52 -18
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 1/10 up/down: 2/-73) Total: -71 bytes
2007-04-16 22:34:39 +00:00
Denis Vlasenko
ac678ec2f1
style fixes, no code changes
2007-04-16 22:32:04 +00:00
Denis Vlasenko
e471275813
msh: style fixes
...
shell/README - a place to record things about busybox shells
2007-04-14 15:08:41 +00:00
Denis Vlasenko
5f9468e996
lineedit: nuke two unused variables and code which sets them
...
applets: do not even try to read config if run by real root
msh: use named constants (O_RDONLY etc) in open() instead of magic numbers,
other minor code size reduction.
2007-04-14 13:22:09 +00:00
Denis Vlasenko
8a28e620ce
lash: recognize and use NOFORK applets
...
lash,hush: fix kill buglet (didn't properly recognize ESRCH)
2007-04-14 11:16:29 +00:00
Denis Vlasenko
f5294e1f4c
hush: use NOFORK applets as appropriate. Net reduction of code size.
2007-04-14 10:09:57 +00:00
Denis Vlasenko
16abcd90ae
teach find_root_device to deal with /dev/ subdirs
...
(by "Kirill K. Smirnov" <lich@math.spbu.ru>)
2007-04-13 23:59:52 +00:00
Denis Vlasenko
fbf6dea5a2
hush: more style fixes.
2007-04-13 19:56:56 +00:00
Denis Vlasenko
f03dbeda90
hush: comment out and replace bug in set_local_var:
...
- if (value == 0 && ++value == 0) {
+ /*if (value == 0 && ++value == 0) ??? -vda */
+ if (value == NULL || value[1] == '\0') {
Style fixes.
2007-04-13 19:55:50 +00:00