Denis Vlasenko
fee2d0c256
msh: stop trying to parse variables in "msh SCRIPT VAR=val param".
...
They should be passed as ordinary parameters.
2008-02-12 10:12:18 +00:00
Denis Vlasenko
7e497527ea
msh: instead of fixing "ls | cd", "cd | ls" etc just disallow
...
builtins in pipes. They make no sense there anyway.
msh: shrink umask builtin.
function old new delta
execute 2508 2509 +1
doset 326 317 -9
forkexec 1370 1345 -25
doumask 165 101 -64
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 1/-98) Total: -97 bytes
2008-02-12 09:51:03 +00:00
Denis Vlasenko
e26b2783a5
ash: fix warning about _GNU_SOURCE being redefined, fix typo in comment.
2008-02-12 07:40:29 +00:00
Denis Vlasenko
648b44fd78
msh: shrink, mainly by using smallints
...
function old new delta
synio 251 263 +12
filechar 310 315 +5
subgetc 781 785 +4
brkcontin 106 109 +3
...
yylex 981 976 -5
execute 2513 2508 -5
waitfor 321 315 -6
onintr 103 97 -6
doset 332 326 -6
doexec 186 180 -6
yyparse 65 57 -8
thenpart 135 126 -9
forkexec 1379 1370 -9
onecommand 457 433 -24
newtp 52 28 -24
command 1086 1061 -25
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 7/23 up/down: 27/-163) Total: -136 bytes
2008-02-12 06:04:06 +00:00
Denis Vlasenko
a5f2cd30c9
msh: do not run pipes where last command is a builtin
...
msh: code shrink and some renames for better readability
2008-02-11 18:10:06 +00:00
Denis Vlasenko
83177991c8
hush: die_sllep needs restoring only if job control is on
2008-02-11 08:44:36 +00:00
Denis Vlasenko
08126f665d
hush: close-on-exec interactive_fd
2008-02-11 08:39:11 +00:00
Denis Vlasenko
459a5ad410
hush: set CLOEXEC on script file being executed
2008-02-11 08:35:03 +00:00
Denis Vlasenko
4ecfcdcced
hush: fix the comment
2008-02-11 08:32:31 +00:00
Denis Vlasenko
c04163a289
hush: reset die_sleep to 0 in child after fork
2008-02-11 08:30:53 +00:00
Denis Vlasenko
991a1da148
ash: fix "orwell bug" 1984. Testcase:
...
trap_handler() {
echo trap
}
trap trap_handler USR1
sleep 3600 &
while true; do wait; done
2008-02-10 19:02:53 +00:00
Denis Vlasenko
0ef240d979
hush: small fixes to docs/testsuite
2008-02-10 16:00:30 +00:00
Denis Vlasenko
05743d7949
hush: reinstate cmd
handling for NOMMU (with fat big warning).
...
hush: fix a case where none of pipe members could be started
because of fork failure
hush: rename functions: xxx_real -> xxx
hush: try to add a bit more of vfork-friendliness
hush: add rudimentary design docs
hush: add TODO (newly discovered bug with globbing)
2008-02-10 12:10:08 +00:00
Denis Vlasenko
5c3d2b334a
ash: readability enhancement, no code changes
2008-02-03 22:01:08 +00:00
Denis Vlasenko
6e602c4931
msh: also handle EOF/read errors correctly
2008-02-02 18:50:50 +00:00
Denis Vlasenko
80667e30fb
msh: fix Ctrl-C handling with line editing
2008-02-02 18:35:55 +00:00
Denis Vlasenko
36fc3cd8bc
ash: code readability enhancements, no real code changes
2008-01-29 09:23:49 +00:00
Denis Vlasenko
847fa779af
*: tidy up usage of char **environ
2008-01-28 22:45:43 +00:00
Denis Vlasenko
d2c450ce81
hush: report [v]fork failures
...
hush: more correct handling of piping
config: add CONFIG_NOMMU
2008-01-08 20:32:12 +00:00
Denis Vlasenko
fb0eba706c
libbb: introduce and use safe_waitpid (loops in EINTR)
...
*: use more approproate (shorter) versions of wait()
function old new delta
safe_waitpid - 48 +48
wait_any_nohang - 17 +17
send_tree 365 369 +4
processorstop 432 435 +3
text_yank 110 108 -2
make_human_readable_str 202 200 -2
crond_main 1368 1366 -2
handle_sigchld 49 43 -6
reapchild 166 159 -7
custom 260 250 -10
checkscript 191 177 -14
wait_nohang 17 - -17
wait_pid 43 - -43
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 2/7 up/down: 72/-103) Total: -31 bytes
2008-01-02 19:55:04 +00:00
Mike Frysinger
08137c28c4
add expected output
2007-12-25 04:35:05 +00:00
Denis Vlasenko
3b4921674e
hush: fixlet for NOMMU
...
update TODO_config_nommu
2007-12-24 14:26:57 +00:00
Denis Vlasenko
528a8b9769
cttyhack: trivial build fixlet
2007-12-22 19:57:28 +00:00
Denis Vlasenko
ee87ebf381
fix buglets found by randomconfig
2007-12-21 22:18:16 +00:00
Denis Vlasenko
c794c51a1a
msh: reduce global data/bss usage
...
(add/remove: 1/5 grow/shrink: 28/6 up/down: 464/-394) Total: 70 bytes
text data bss dec hex filename
778077 908 7568 786553 c0079 busybox_old
778330 860 7408 786598 c00a6 busybox_unstripped
2007-12-16 17:21:29 +00:00
Denis Vlasenko
0163111325
ash: reduce global data/bss usage
...
(add/remove: 4/29 grow/shrink: 76/21 up/down: 1007/-1713) Total: -706 bytes
text data bss dec hex filename
777206 1084 8976 787266 c0342 busybox_old
778077 908 7568 786553 c0079 busybox_unstripped
2007-12-16 17:20:38 +00:00
Denis Vlasenko
d7e2e127a9
cttyhack: add missing ';'
...
init: remove pointless access() check
2007-12-10 08:40:29 +00:00
Denis Vlasenko
2afabe8b83
init: remove superfluous forks and messing up with argv[0]
...
cttyhack: add stealing of ctty
2007-12-10 07:06:04 +00:00
Denis Vlasenko
9cb220be9d
lineedit: don't violate API if we do simple fgets
...
ash: cosmetic style fixes, no code changes
2007-12-09 10:03:28 +00:00
Denis Vlasenko
ab801874f8
attack the biggest stack users:
...
-mkfs_minix_main [busybox_unstripped]: 4288
-mkfs_minix_main [busybox_unstripped]: 4276
-grave [busybox_unstripped]: 4260
(bzip2 users too - not listed)
price we pay in code size increase:
mainSort 2458 2515 +57
grave 1005 1058 +53
sendMTFValues 2177 2195 +18
BZ2_blockSort 122 125 +3
mkfs_minix_main 3070 3022 -48
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 131/-48) Total: 83 bytes
2007-12-02 08:35:37 +00:00
Denis Vlasenko
1aa7e477b1
reorganize applet table. Eliminates pointers to names.
...
Should be a big win for libbusybox. busybox wins too:
text data bss dec hex filename
776524 929 9100 786553 c0079 busybox_old
775903 929 9100 785932 bfe0c busybox_unstripped
2007-11-28 06:49:03 +00:00
Denis Vlasenko
ed270a5f32
ash: make code simpler, and do not do close(-1) - it's rude
2007-11-26 05:37:07 +00:00
Denis Vlasenko
fe5e23bf75
remove echo_main -> bb_echo indirection
2007-11-24 02:23:51 +00:00
Denis Vlasenko
c3c6659f12
hush: fix segfault in "echo $@" when we have no arguments
2007-11-24 00:22:42 +00:00
Denis Vlasenko
96702ca945
kill lash. "lash" builtin still exists, but it runs hush.
2007-11-23 23:28:55 +00:00
Denis Vlasenko
5bc593ccb8
hush: implement echo builtin
...
builtin_echo - 36 +36
bltins 384 396 +12
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 48/0) Total: 48 bytes
2007-11-23 21:20:21 +00:00
Denis Vlasenko
cccdc4e01a
hush: fix $ expansion in redirections, add testcase for that
2007-11-23 21:08:38 +00:00
Denis Vlasenko
835068637e
hush: implement test builtin
2007-11-23 13:11:42 +00:00
Denis Vlasenko
f962a0354e
hush: plug memory leak
2007-11-23 12:50:54 +00:00
Denis Vlasenko
7d75a96b15
ash: fix bug where redirection of closed fd was leaving it open afterwards.
...
redirect 983 1024 +41
bb_echo 276 301 +25
popredir 118 132 +14
evalcommand 1163 1176 +13
bbunpack 358 366 +8
echocmd 13 5 -8
echo_main 13 5 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/2 up/down: 101/-16) Total: 85 bytes
text data bss dec hex filename
774999 962 9236 785197 bfb2d busybox_old
775084 962 9236 785282 bfb82 busybox_unstripped
2007-11-22 08:16:57 +00:00
Denis Vlasenko
a6899c3587
lash: fix compile-time warning
2007-11-15 17:47:45 +00:00
Denis Vlasenko
a59f435b5f
ash: if tcgetattr(stdin) fails, don't mess with tcsetattr
...
ash: size-optimize ulimit's table of limits
text data bss dec hex filename
777345 974 9676 787995 c061b busybox_old
777253 974 9676 787903 c05bf busybox_unstripped
2007-10-29 19:17:29 +00:00
Denis Vlasenko
037576d77b
read_line_input: fix it to not do any fancy editing if echoing is disabled.
...
ash: make read handling both more correct and smaller
read_line_input 4037 4101 +64
input_backward 140 139 -1
readcmd 1079 1070 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 65/-10) Total: 54 bytes
text data bss dec hex filename
777575 1000 9532 788107 c068b busybox_old
777629 1000 9532 788161 c06c1 busybox_unstripped
2007-10-20 18:30:38 +00:00
Denis Vlasenko
0de37e10ed
ash: use fdprintf, not dprintf.
...
*: trailing whitespace removed
2007-10-17 11:08:53 +00:00
Denis Vlasenko
9b49a5ed85
add -fvisibility=hidden to CC flags, mark XXX_main functions
...
EXTERNALLY_VISIBLE. 5% size reduction of libbusybox.so
2007-10-11 10:05:36 +00:00
Denis Vlasenko
82d38dab91
get rid of global "struct bb_applet *current_applet"
2007-10-10 14:38:47 +00:00
Denis Vlasenko
41770226bb
ash: revert "cat | jobs" fix, it causes more problems than good
2007-10-07 18:02:52 +00:00
Denis Vlasenko
0c97c9d437
'simple' error message functions by Loic Grenie <loic.grenie@gmail.com>.
...
263 bytes saved.
2007-10-01 11:58:38 +00:00
Denis Vlasenko
d65ea39ffc
hush: fix glob() abuse. Code was making unfounded assumptions how
...
glob() works, and it broke horribly on specific uclibc config.
2007-10-01 10:02:25 +00:00
Denis Vlasenko
ff0976248a
hush: int->smallint for flag vars; make some names more "greppable"
2007-10-01 10:00:45 +00:00
Denis Vlasenko
8412d7959a
hush: feeble attempt at making it more NOMMU-friendly
2007-10-01 09:59:47 +00:00
Denis Vlasenko
a0898170d8
hush: stop doing manual acounting of open fd's, kernel can do it for us
2007-10-01 09:59:01 +00:00
Denis Vlasenko
96e1b38586
introduce and use close_on_exec_on(fd). -50 bytes.
2007-09-30 23:50:48 +00:00
Denis Vlasenko
6081868ee3
fix "if (p) free(p)" constructs
2007-09-28 22:07:23 +00:00
Denis Vlasenko
4daad9004d
introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).
2007-09-27 10:20:47 +00:00
Denis Vlasenko
46a530626d
ash: fix prompt expansion (Natanael Copa <natanael.copa@gmail.com>)
2007-09-24 18:30:02 +00:00
Denis Vlasenko
818322b9b1
*: kill bb_get_last_path_component, replace with two functions
...
(one which strips trailing slash and one which does not)
wget: straighten out as a result of above change
text data bss dec hex filename
5056 1 0 5057 13c1 busybox.t4/networking/wget.o
5022 0 0 5022 139e busybox.t5/networking/wget.o
2007-09-24 18:27:04 +00:00
Denis Vlasenko
7b70d78de8
ash: remove erroneously applied patch
2007-09-21 22:48:02 +00:00
Denis Vlasenko
f431017535
httpd: optional support for partial downloads
2007-09-21 22:35:18 +00:00
Denis Vlasenko
bcceb0c5a4
ash: s/int/smallint/. -60 bytes.
2007-09-21 18:06:20 +00:00
Denis Vlasenko
87f3b26b3a
*: replace select-for-one descriptor with poll, it's smaller.
...
$ ./.cmk bloatcheck
function old new delta
readit 406 364 -42
syslogd_main 1249 1206 -43
traceroute_main 4115 4060 -55
mysleep 112 45 -67
arpping 579 441 -138
tftp 1575 1182 -393
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/6 up/down: 0/-738) Total: -738 bytes
text data bss dec hex filename
770580 1051 10764 782395 bf03b busybox_old
769820 1051 10764 781635 bed43 busybox_unstripped
2007-09-07 13:43:28 +00:00
Denis Vlasenko
d37f22225b
libbb,crond,lash: fix getopt32 (don't know how it managed to slip through)
...
*: fcntl(fd, F_GETFL) doesn't require third parameter at all.
2007-08-19 13:42:08 +00:00
Denis Vlasenko
fe7cd642b0
don't pass argc in getopt32, it's superfluous
...
(add/remove: 0/0 grow/shrink: 12/131 up/down: 91/-727) Total: -636 bytes
text data bss dec hex filename
773469 1058 11092 785619 bfcd3 busybox_old
772644 1058 11092 784794 bf99a busybox_unstripped
2007-08-18 15:32:12 +00:00
Denis Vlasenko
6ca409e0e4
trylink: produce even more info about final link stage
...
trylink: explain how to modify link and drastically decrease amount
of padding (unfortunately, needs hand editing ATM).
*: add ALIGN1 / ALIGN2 to global strings and arrays of bytes and shorts
size saving: 0.5k
2007-08-12 20:58:27 +00:00
Denis Vlasenko
dee82b6b78
ash: comment non-obvious code part
2007-07-29 14:05:27 +00:00
Denis Vlasenko
b71c668c57
style fix (stray space before ';')
2007-07-21 15:08:09 +00:00
Denis Vlasenko
d4293c77f1
ash: fix SEGV in forkchild (jp can be NULL). here documents were affected.
2007-07-18 21:35:43 +00:00
Denis Vlasenko
bdc406d15d
ash: make "jobs | cat" work like in bash (was giving empty output)
2007-07-15 01:13:25 +00:00
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
Denis Vlasenko
b636d8c18c
shell/: add SUSv3 doc for fast & easy reference
2007-04-13 19:44:22 +00:00
Denis Vlasenko
b69f35effe
lash: "forking" applets are actually can be treated the same way as "non-forked".
...
Also save a bit of space on trailing NULL array elements.
2007-04-12 17:10:45 +00:00
Denis Vlasenko
7cced6e574
fix realloc-of-non-malloced pointer, and reduce size while at it
2007-04-12 17:08:53 +00:00
Denis Vlasenko
831a20f512
pass a copy of argv[i] to NOFORK applets (they may permute it etc).
...
set/save/restore more shared global variables whan call one applet from another
2007-04-12 12:27:32 +00:00
Denis Vlasenko
51742f4bb0
style fixes. No code changes
2007-04-12 00:32:05 +00:00
Denis Vlasenko
50f7f446ec
bb_full_fd_action: remove potential xmalloc from NOFORK path
...
cat: stop using stdio.h opens
libbb: introduce & use open[3]_or_warn
function old new delta
open3_or_warn - 54 +54
bb_cat 115 144 +29
open_or_warn - 25 +25
unlzma 2404 2412 +8
chattr_main 334 339 +5
xstrtoul_range_sfx 251 255 +4
telnet_main 1514 1510 -4
static.opt 4 - -4
qgravechar 122 118 -4
fuser_add_pid 61 54 -7
fuser_add_inode 154 147 -7
writeFileToTarball 1542 1534 -8
refresh 1156 1148 -8
do_show 856 846 -10
read_leases 212 200 -12
setup_redirects 236 222 -14
iproute_list_or_flush 1582 1568 -14
read_config 427 411 -16
write_leases 284 264 -20
hash_file 338 318 -20
copy_file 1760 1740 -20
do_iproute 2610 2588 -22
bb_full_fd_action 320 269 -51
open_to_or_warn 103 49 -54
fuser_main 1660 1596 -64
.rodata 131160 131096 -64
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 4/19 up/down: 125/-423) Total: -298 bytes
2007-04-11 23:20:53 +00:00
Denis Vlasenko
d7c8196c1b
ash: fix kill -l (by Mats Erik Andersson <mats.andersson64@comhem.se>)
2007-04-11 20:43:31 +00:00
Denis Vlasenko
6398cf477d
style fixes, no code changes.
2007-04-11 17:04:29 +00:00
Denis Vlasenko
e4f2d064b0
rename: run_applet_by_name -> run_applet_and_exit
2007-04-11 17:03:19 +00:00
Denis Vlasenko
80d14beae9
Rename two config options:
...
FEATURE_SH_STANDALONE_SHELL => FEATURE_SH_STANDALONE
FEATURE_EXEC_PREFER_APPLETS => FEATURE_PREFER_APPLETS
Make SH_STANDALONE depend on PREFER_APPLETS.
getopt.c: more randomconfig-induced fixes
2007-04-10 23:03:30 +00:00
Denis Vlasenko
335b63d8d1
make a few struct bb_applet members conditional
...
rename sllep_and_die -> xfunc_die
make fflush_stdout_and_exit NOFORK-safe
fix some buglets found by randomconfig
2007-04-10 21:38:30 +00:00
Denis Vlasenko
ff131b980d
style fixes. No code changes.
2007-04-10 15:42:06 +00:00
Bernhard Reutner-Fischer
de17ece1db
- use skip_non_whitespace() where appropriate
2007-04-10 09:38:35 +00:00
Denis Vlasenko
c44ab01b75
Improve STANDALONE_SHELL. "safe" applets are renamed NOEXEC applets
...
and now this fact is recorded in applets.h, not ash.c.
Several fixes to "--help + STANDALONE_SHELL" scenarios.
function old new delta
run_current_applet_and_exit - 355 +355
arith 2064 2073 +9
refresh 1148 1156 +8
getopt32 1068 1073 +5
telnet_main 1510 1514 +4
md5_sha1_sum_main 565 566 +1
xstrtoul_range_sfx 255 251 -4
packed_usage 22523 22514 -9
tryexec 255 203 -52
static.safe_applets 152 - -152
.rodata 131320 131128 -192
run_applet_by_name 869 506 -363
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 5/5 up/down: 382/-772) Total: -390 bytes
./busybox ash -c 'i=20000; while test $i != 0; do touch z; i=$((i-1)); done'
runs more than twice as fast with STANDALONE_SHELL versus without.
2007-04-09 03:11:58 +00:00
Denis Vlasenko
95cb3263ae
msh: smallish code shrinkage; cosmetics
2007-04-09 03:06:34 +00:00
Denis Vlasenko
240a1cfbbe
add some missed statics on constant objects.
...
fix few #ifndef ENABLE_xxx
# size busybox_old busybox_unstripped
text data bss dec hex filename
677152 2920 18208 698280 aa7a8 busybox_old
676420 2920 18208 697548 aa4cc busybox_unstripped
2007-04-08 16:07:02 +00:00
Bernhard Reutner-Fischer
febe3c4211
- sed -e "s/char[[:space:]]*\*[[:space:]]*argv\[\]/char **argv/g"
2007-04-04 20:52:03 +00:00
Denis Vlasenko
f443bffd3c
lash: make -c work; crush buffer overrun and free of non-malloced ptr
...
(from Mats Erik Andersson <mats.andersson64@comhem.se>)
2007-03-31 11:08:50 +00:00
Denis Vlasenko
6fa8b8e17f
lash: style cleanup
2007-03-31 11:07:30 +00:00
Denis Vlasenko
10457b90db
make pidfile writing configurable.
...
[ui]toa_to_buf: change API. No users yet.
2007-03-27 22:01:31 +00:00
Denis Vlasenko
55f30b05ac
inetd,ed,msh: data/bss reduction (in mss, more than 9k of it)
2007-03-24 22:42:29 +00:00
Denis Vlasenko
219d14d514
random style fixes (extra spaces deleted)
2007-03-24 15:40:16 +00:00
Denis Vlasenko
5b27fbe990
dc: use common_bufsiz1 for evaluation stack
...
msh: fix "underscore bug" (a_b=1111 didn't work)
dnsd: openlog(), so that applet's name is logged
2007-03-24 14:06:51 +00:00
Denis Vlasenko
7c139b4778
ash: fix signal handling
2007-03-21 20:17:27 +00:00
Denis Vlasenko
c86e052b81
fix accumulated whitespace and indentation damage
2007-03-20 11:30:28 +00:00
Denis Vlasenko
93ebd4f58d
ash: popstackmark is reported trying to pop until NULL
...
is seen (which isn't possible), prevent this.
2007-03-13 20:55:36 +00:00
Mike Frysinger
67a32adbca
add STANDALONE support
2007-03-09 08:25:24 +00:00
Denis Vlasenko
8e858e2700
clean up accumulated whitespace damage
2007-03-07 09:35:43 +00:00
Denis Vlasenko
9431e564aa
ash: "here document" testcases
2007-03-05 21:08:29 +00:00
Denis Vlasenko
140644dc1c
add ash testcases
2007-03-05 20:46:46 +00:00
Denis Vlasenko
1c660b4bd2
small ash testsuite, adapted from bash
...
(only a small part of it, actually)
2007-03-05 00:27:50 +00:00
Denis Vlasenko
3af3e5b4b0
ash: cosmetic improvements in error messages
2007-03-05 00:24:52 +00:00
Denis Vlasenko
29e31ddd81
ash: do not use "safe applets" in non-standalone shell
2007-03-03 23:12:17 +00:00
Denis Vlasenko
4222ae440a
ash: replace xstrdup (shell shall not die)
...
grep: fix mis-indented block
2007-02-25 02:37:49 +00:00
Denis Vlasenko
5276402f2c
ash: fix compile problems
2007-02-24 13:42:56 +00:00
Denis Vlasenko
f98dc4db7a
ash: cleanup part 2.8
2007-02-23 21:11:02 +00:00
Denis Vlasenko
0dec6de38b
ash: cleanup part 2.7
2007-02-23 21:10:47 +00:00
Denis Vlasenko
cc5715184b
ash: cleanup part 2.6
2007-02-23 21:10:35 +00:00
Denis Vlasenko
2de3d9fbee
ash: cleanup part 2.5
2007-02-23 21:10:23 +00:00
Denis Vlasenko
a89150733a
ash: cleanup part 2.4
2007-02-23 21:10:06 +00:00
Denis Vlasenko
99eb8500c9
ash: cleanup part 2.3
2007-02-23 21:09:49 +00:00
Denis Vlasenko
fc06f2968b
ash: cleanup part 2.2
2007-02-23 21:09:35 +00:00
Denis Vlasenko
5651bfc204
ash: starting second round of cleanups. #1
2007-02-23 21:08:58 +00:00
Denis Vlasenko
bc54cffc83
ash: cleanup part 9
2007-02-23 01:05:52 +00:00
Denis Vlasenko
4d2183bee1
ash: cleanup part 8
2007-02-23 01:05:38 +00:00
Denis Vlasenko
4fe15f3d9e
ash: cleanup part 7
2007-02-23 01:05:26 +00:00
Denis Vlasenko
a6704933dd
ash: cleanup part 6
2007-02-23 01:05:15 +00:00
Denis Vlasenko
5c67e3ed90
ash: cleanup part 5
2007-02-23 01:05:03 +00:00
Denis Vlasenko
fe1f00a7a7
ash: cleanup part 4
2007-02-23 01:04:50 +00:00
Denis Vlasenko
9650f36210
ash: cleanup part 3
2007-02-23 01:04:37 +00:00
Denis Vlasenko
aa74445514
ash: cleanup part 2
2007-02-23 01:04:22 +00:00
Denis Vlasenko
0c032a49b9
ash: cleanup part 1
2007-02-23 01:03:40 +00:00
Denis Vlasenko
a624c11d5e
ash: move ash_main() and helpers to end of ash.c, more fuctions renamed,
...
superfluous casts from memory allocators removed
2007-02-19 22:45:43 +00:00
Denis Vlasenko
2da584fc4e
ash: more renaming and style fixes
2007-02-19 22:44:05 +00:00
Denis Vlasenko
b012b10dbd
ash: rearrange code to reduce forward references, rename some functions
2007-02-19 22:43:01 +00:00
Denis Vlasenko
e5570da2cf
ash: tiny style fixes
2007-02-19 22:41:55 +00:00
Denis Vlasenko
5cedb75aa7
ash: de-obfuscate code, add 'static' keyword, etc.
2007-02-18 19:56:41 +00:00
Denis Vlasenko
131ae177a7
ash: convert #ifdef CONFIG_ to #if ENABLE_
2007-02-18 13:00:19 +00:00
Denis Vlasenko
a0f82e928a
ash: fix indentation and style. no code changes
2007-02-18 12:35:30 +00:00
Denis Vlasenko
6ca0444420
syslogd: fix "readpath bug" by using readlink instead
...
libbb: rename xgetcwd and xreadlink
2007-02-11 16:19:28 +00:00
Denis Vlasenko
d244c5eaf8
msh: fix my buglet
2007-02-09 17:30:14 +00:00
Denis Vlasenko
cf787cf3a5
find: support for !
2007-02-04 17:11:25 +00:00
Denis Vlasenko
06af216528
suppress warnings about easch <applet>_main() having
...
no preceding prototype
2007-02-03 17:28:39 +00:00
Denis Vlasenko
4c97863109
assorted fixes for bugs found with randomconfig
2007-02-03 03:31:13 +00:00
Denis Vlasenko
1e3b068689
msh: cleaning up for -Wwrite-strings part #4
2007-02-01 01:43:54 +00:00
Denis Vlasenko
6b50f73171
msh: cleaning up for -Wwrite-strings part #3
2007-02-01 01:43:39 +00:00
Denis Vlasenko
489f93ebae
msh: cleaning up for -Wwrite-strings part #2
2007-02-01 01:43:16 +00:00
Denis Vlasenko
00ccf95bc8
msh: cleaning up for -Wwrite-strings
2007-02-01 01:39:24 +00:00
Denis Vlasenko
71d8abf30c
lash: -Wwrite-strings fixes
2007-01-30 22:44:07 +00:00
Denis Vlasenko
bb81c5831a
hush: style fixes
2007-01-30 22:32:09 +00:00
Denis Vlasenko
c72c1ed932
hush: now it's -Wwrite-strings clean
2007-01-30 22:31:26 +00:00
Denis Vlasenko
0c886c65de
hush: style fixes
2007-01-30 22:30:09 +00:00
Denis Vlasenko
15d78fb724
hust: -Wwrite-strings fixes
2007-01-30 22:28:21 +00:00
Bernhard Reutner-Fischer
eb10e17b7b
- improve spelling
2007-01-29 23:56:13 +00:00
Denis Vlasenko
b6aae0f381
preparatory patch for -Wwrite-strings #2
2007-01-29 22:51:25 +00:00
Denis Vlasenko
703e20235a
cleanups: unnecessary casts, unified const_1, eliminate cross-.c file
...
prototypes (heresy!), add spaces in places like "flags&NETSTAT_CONNECTED",
removed unused #defines, #ifdef -> #if, use uint32_t for ipv4 addrs.
2007-01-22 14:12:08 +00:00
Denis Vlasenko
95fef7071e
move shell/cmdedit.c -> libbb/lineedit.c
2007-01-22 09:03:42 +00:00
Denis Vlasenko
38f6319421
cmdedit is not a 'command' editing anymore, it's just editing (generic),
...
so rename stuff accordingly.
2007-01-22 09:03:07 +00:00
Denis Vlasenko
253ce00296
cmdedit: fix breakage
2007-01-22 08:34:44 +00:00
Denis Vlasenko
b01b4e2a1f
cmdedit.h: remove
2007-01-22 08:17:14 +00:00
Denis Vlasenko
6258fd3454
cmdedit: stop playing dirty games with atexit
2007-01-22 07:30:26 +00:00
Denis Vlasenko
8e1c71529c
Convert cmdedit into more generic line input facility
...
(make history and completion optional at runtime).
Use it for fdisk, as an example.
Some unrelated fixes in fdisk are also here.
2007-01-22 07:21:38 +00:00