oweals/busybox.git
17 years agodd: fix skip= parse error (spotted by Dirk Clemens <develop@cle-mens.de>)
Denis Vlasenko [Thu, 19 Apr 2007 20:08:19 +0000 (20:08 -0000)]
dd: fix skip= parse error (spotted by Dirk Clemens <develop@cle-mens.de>)

17 years agostty: fix option parsing bug (spotted by Sascha Hauer <s.hauer@pengutronix.de>)
Denis Vlasenko [Thu, 19 Apr 2007 19:55:54 +0000 (19:55 -0000)]
stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer@pengutronix.de>)

17 years agodoc: add README on shell job control
Denis Vlasenko [Thu, 19 Apr 2007 17:26:34 +0000 (17:26 -0000)]
doc: add README on shell job control

17 years agoprocps: remove all global variables
Denis Vlasenko [Thu, 19 Apr 2007 14:47:11 +0000 (14:47 -0000)]
procps: remove all global variables
   text    data     bss     dec     hex filename
   1462      14      24    1500     5dc busybox.t2/procps/ps.o
   1484       0       0    1484     5cc busybox.t3/procps/ps.o
   3122       0     252    3374     d2e busybox.t1/procps/top.o
   3117       0       0    3117     c2d busybox.t3/procps/top.o

17 years agops: add -o tty and -o rss support
Denis Vlasenko [Thu, 19 Apr 2007 14:46:14 +0000 (14:46 -0000)]
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

17 years agoloop device code: readability improvement
Denis Vlasenko [Thu, 19 Apr 2007 00:09:34 +0000 (00:09 -0000)]
loop device code: readability improvement

17 years agoswitch_root: error_msg -> perror_msg, reduce by 22 bytes while at it.
Denis Vlasenko [Wed, 18 Apr 2007 21:40:30 +0000 (21:40 -0000)]
switch_root: error_msg -> perror_msg, reduce by 22 bytes while at it.

17 years ago"Unify base64 handling" is done, remove TODO
Denis Vlasenko [Wed, 18 Apr 2007 21:14:46 +0000 (21:14 -0000)]
"Unify base64 handling" is done, remove TODO

17 years agomake "busybox" w/o args work again, and save 10 bytes in the process.
Denis Vlasenko [Wed, 18 Apr 2007 21:00:21 +0000 (21:00 -0000)]
make "busybox" w/o args work again, and save 10 bytes in the process.

17 years agohush: remove stray semicolon (should change nothing)
Denis Vlasenko [Wed, 18 Apr 2007 17:21:28 +0000 (17:21 -0000)]
hush: remove stray semicolon (should change nothing)

17 years agoether-wake: save a few more bytes of code
Denis Vlasenko [Mon, 16 Apr 2007 23:23:33 +0000 (23:23 -0000)]
ether-wake: save a few more bytes of code

17 years agoether-wake: close bug 1317. Reorder fuctions to avoid
Denis Vlasenko [Mon, 16 Apr 2007 23:16:37 +0000 (23:16 -0000)]
ether-wake: close bug 1317. Reorder fuctions to avoid
forward refs while at it

17 years agoshells: remove few statics and duplicated code
Denis Vlasenko [Mon, 16 Apr 2007 22:34:39 +0000 (22:34 -0000)]
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

17 years agostyle fixes, no code changes
Denis Vlasenko [Mon, 16 Apr 2007 22:32:04 +0000 (22:32 -0000)]
style fixes, no code changes

17 years agoapplet.c: ruid is needed only if FEATURE_SUID=y
Denis Vlasenko [Mon, 16 Apr 2007 20:55:27 +0000 (20:55 -0000)]
applet.c: ruid is needed only if FEATURE_SUID=y

17 years ago- we unconditionally need ruid. Fixes build error in line 334
Bernhard Reutner-Fischer [Mon, 16 Apr 2007 18:25:46 +0000 (18:25 -0000)]
- we unconditionally need ruid. Fixes build error in line 334

17 years ago- fix compilation when ENABLE_FEATURE_IP_RULE was off
Bernhard Reutner-Fischer [Mon, 16 Apr 2007 14:56:01 +0000 (14:56 -0000)]
- fix compilation when ENABLE_FEATURE_IP_RULE was off

17 years ago- fix compilation if ENABLE_FEATURE_DD_IBS_OBS is off
Bernhard Reutner-Fischer [Mon, 16 Apr 2007 12:21:05 +0000 (12:21 -0000)]
- fix compilation if ENABLE_FEATURE_DD_IBS_OBS is off

17 years agolineedit: state->hist_file doesn't exist if !FEATURE_EDITING_SAVEHISTORY,
Denis Vlasenko [Sun, 15 Apr 2007 13:21:01 +0000 (13:21 -0000)]
lineedit: state->hist_file doesn't exist if !FEATURE_EDITING_SAVEHISTORY,
#ifdef it out

17 years agodoc: fix code example which may provoke warning
Denis Vlasenko [Sun, 15 Apr 2007 11:50:41 +0000 (11:50 -0000)]
doc: fix code example which may provoke warning

17 years agoe2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes)
Denis Vlasenko [Sun, 15 Apr 2007 11:48:27 +0000 (11:48 -0000)]
e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes)

17 years agodeluser: add optional support for removing users from groups
Denis Vlasenko [Sun, 15 Apr 2007 08:43:23 +0000 (08:43 -0000)]
deluser: add optional support for removing users from groups
(by Tito <farmatito@tiscali.it>)

17 years agoupdate style-guide.txt
Denis Vlasenko [Sun, 15 Apr 2007 08:39:39 +0000 (08:39 -0000)]
update style-guide.txt

17 years agoxargs: simplify word list management
Denis Vlasenko [Sun, 15 Apr 2007 08:38:50 +0000 (08:38 -0000)]
xargs: simplify word list management

17 years agomsh: style fixes
Denis Vlasenko [Sat, 14 Apr 2007 15:08:41 +0000 (15:08 -0000)]
msh: style fixes
shell/README - a place to record things about busybox shells

17 years agolineedit: nuke two unused variables and code which sets them
Denis Vlasenko [Sat, 14 Apr 2007 13:22:09 +0000 (13:22 -0000)]
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.

17 years agolash: recognize and use NOFORK applets
Denis Vlasenko [Sat, 14 Apr 2007 11:16:29 +0000 (11:16 -0000)]
lash: recognize and use NOFORK applets
lash,hush: fix kill buglet (didn't properly recognize ESRCH)

17 years agolineedit: do not try to open NULL history file
Denis Vlasenko [Sat, 14 Apr 2007 10:10:40 +0000 (10:10 -0000)]
lineedit: do not try to open NULL history file

17 years agohush: use NOFORK applets as appropriate. Net reduction of code size.
Denis Vlasenko [Sat, 14 Apr 2007 10:09:57 +0000 (10:09 -0000)]
hush: use NOFORK applets as appropriate. Net reduction of code size.

17 years agoteach find_root_device to deal with /dev/ subdirs
Denis Vlasenko [Fri, 13 Apr 2007 23:59:52 +0000 (23:59 -0000)]
teach find_root_device to deal with /dev/ subdirs
(by "Kirill K. Smirnov" <lich@math.spbu.ru>)

17 years agodpkg: use nitfields which are a bit closer to typical ushort.
Denis Vlasenko [Fri, 13 Apr 2007 23:22:58 +0000 (23:22 -0000)]
dpkg: use nitfields which are a bit closer to typical ushort.
Code size -800.

17 years agostyle fixes
Denis Vlasenko [Fri, 13 Apr 2007 23:22:00 +0000 (23:22 -0000)]
style fixes

17 years agosourse_route_list -> source_route_list
Denis Vlasenko [Fri, 13 Apr 2007 22:07:21 +0000 (22:07 -0000)]
sourse_route_list -> source_route_list

17 years agomake xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y)
Denis Vlasenko [Fri, 13 Apr 2007 21:26:20 +0000 (21:26 -0000)]
make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y)

17 years agohush: more style fixes.
Denis Vlasenko [Fri, 13 Apr 2007 19:56:56 +0000 (19:56 -0000)]
hush: more style fixes.

17 years agohush: comment out and replace bug in set_local_var:
Denis Vlasenko [Fri, 13 Apr 2007 19:55:50 +0000 (19:55 -0000)]
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.

17 years agoshell/: add SUSv3 doc for fast & easy reference
Denis Vlasenko [Fri, 13 Apr 2007 19:44:22 +0000 (19:44 -0000)]
shell/: add SUSv3 doc for fast & easy reference

17 years agofix typo in comment
Denis Vlasenko [Fri, 13 Apr 2007 16:32:26 +0000 (16:32 -0000)]
fix typo in comment

17 years agofind: add support for -delete, -path (by Natanael Copa)
Denis Vlasenko [Fri, 13 Apr 2007 10:00:12 +0000 (10:00 -0000)]
find: add support for -delete, -path (by Natanael Copa)

17 years agosed: fix escaped newlines in -f; fix multiple -f and -e
Denis Vlasenko [Thu, 12 Apr 2007 21:20:25 +0000 (21:20 -0000)]
sed: fix escaped newlines in -f; fix multiple -f and -e
(broke when getopt32 was fixed to not reverse the list)

17 years agologin: fixing my brainfart: xspawn(t_argv) <- was using argv!
Denis Vlasenko [Thu, 12 Apr 2007 20:33:01 +0000 (20:33 -0000)]
login: fixing my brainfart: xspawn(t_argv) <- was using argv!

17 years agomake sure we free the grep data as well
Mike Frysinger [Thu, 12 Apr 2007 18:29:27 +0000 (18:29 -0000)]
make sure we free the grep data as well

17 years agolash: "forking" applets are actually can be treated the same way as "non-forked".
Denis Vlasenko [Thu, 12 Apr 2007 17:10:45 +0000 (17:10 -0000)]
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.

17 years agofix realloc-of-non-malloced pointer, and reduce size while at it
Denis Vlasenko [Thu, 12 Apr 2007 17:08:53 +0000 (17:08 -0000)]
fix realloc-of-non-malloced pointer, and reduce size while at it

17 years agologin: remove setpgrp call (makes it work from shell prompt again).
Denis Vlasenko [Thu, 12 Apr 2007 12:31:02 +0000 (12:31 -0000)]
login: remove setpgrp call (makes it work from shell prompt again).
login: sanitize stdio descriptors (we are suid, need to be careful!)
shrink login and set_environment by ~100 bytes.

17 years agopass a copy of argv[i] to NOFORK applets (they may permute it etc).
Denis Vlasenko [Thu, 12 Apr 2007 12:27:32 +0000 (12:27 -0000)]
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

17 years ago- shrink iproute a bit (-200 bytes). Untested
Bernhard Reutner-Fischer [Thu, 12 Apr 2007 11:36:56 +0000 (11:36 -0000)]
- shrink iproute a bit (-200 bytes). Untested

17 years ago- add xsendto and use where appropriate; shrink iplink; sanitize libiproute a bit.
Bernhard Reutner-Fischer [Thu, 12 Apr 2007 11:34:39 +0000 (11:34 -0000)]
- add xsendto and use where appropriate; shrink iplink; sanitize libiproute a bit.
  -916 byte

17 years agostyle fixes. No code changes
Denis Vlasenko [Thu, 12 Apr 2007 00:32:05 +0000 (00:32 -0000)]
style fixes. No code changes

17 years agobb_full_fd_action: remove potential xmalloc from NOFORK path
Denis Vlasenko [Wed, 11 Apr 2007 23:20:53 +0000 (23:20 -0000)]
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

17 years agoash: fix kill -l (by Mats Erik Andersson <mats.andersson64@comhem.se>)
Denis Vlasenko [Wed, 11 Apr 2007 20:43:31 +0000 (20:43 -0000)]
ash: fix kill -l (by Mats Erik Andersson <mats.andersson64@comhem.se>)

17 years agofix typo in doc
Denis Vlasenko [Wed, 11 Apr 2007 19:27:22 +0000 (19:27 -0000)]
fix typo in doc

17 years agostyle fixes, no code changes.
Denis Vlasenko [Wed, 11 Apr 2007 17:04:29 +0000 (17:04 -0000)]
style fixes, no code changes.

17 years agorename: run_applet_by_name -> run_applet_and_exit
Denis Vlasenko [Wed, 11 Apr 2007 17:03:19 +0000 (17:03 -0000)]
rename: run_applet_by_name -> run_applet_and_exit

17 years ago- set the scope properly. Thanks to Jean Wolter, who wrote:
Bernhard Reutner-Fischer [Wed, 11 Apr 2007 16:23:57 +0000 (16:23 -0000)]
- set the scope properly. Thanks to Jean Wolter, who wrote:
busybox ip and the original ip utility behave differently when setting
the following route (verified with ip route show using the original ip
utility):

   ip route add 10.0.0.138 dev eth0

Result for busybox ip:

       # ip route add 10.0.0.138 dev eth0
       # /usr/local/bin/ip route show
       10.0.0.138 dev eth0

Result for ip:

       # /usr/local/bin/ip route add 10.0.0.138 dev eth0
       #  /usr/local/bin/ip route show
       10.0.0.138 dev eth0  scope link

A following "ip route add default via 10.0.0.138" fails for busybox
ip, since the kernel can not find a route to 10.0.0.138 (it replies
with Network is unreachable).

The reasons seems to be that the original ip utility explicitly sets
the scope after parsing all parameters. This is missing in busybox,
the attached patch fixes this. I took this from the original iproute
sources and removed some variables, which are not needed for busybox.

17 years agoAdd NOFORK/NOEXEC documentation.
Denis Vlasenko [Wed, 11 Apr 2007 16:16:41 +0000 (16:16 -0000)]
Add NOFORK/NOEXEC documentation.

17 years agofix typo in comment
Denis Vlasenko [Wed, 11 Apr 2007 07:36:31 +0000 (07:36 -0000)]
fix typo in comment

17 years agofix misplaced #if
Denis Vlasenko [Wed, 11 Apr 2007 07:26:56 +0000 (07:26 -0000)]
fix misplaced #if

17 years agoadd more convenient defines for [NO]MMU:
Denis Vlasenko [Wed, 11 Apr 2007 07:04:23 +0000 (07:04 -0000)]
add more convenient defines for [NO]MMU:
"#ifndef BB_NOMMU" is a double negative

17 years agorandom NOMMU fixes. compressed --help really does work for NOMMU! /me happy
Denis Vlasenko [Tue, 10 Apr 2007 23:32:37 +0000 (23:32 -0000)]
random NOMMU fixes. compressed --help really does work for NOMMU! /me happy

17 years agoRename two config options:
Denis Vlasenko [Tue, 10 Apr 2007 23:03:30 +0000 (23:03 -0000)]
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

17 years agoxargs: fix my brain fart (resulted in memory leak)
Denis Vlasenko [Tue, 10 Apr 2007 21:41:16 +0000 (21:41 -0000)]
xargs: fix my brain fart (resulted in memory leak)

17 years agomake compressed help code NOMMU- and NOFORK-friendly -
Denis Vlasenko [Tue, 10 Apr 2007 21:40:19 +0000 (21:40 -0000)]
make compressed help code NOMMU- and NOFORK-friendly -
no forking anymore, bunzip2 unpack routine now does all it in memory.

17 years agomake a few struct bb_applet members conditional
Denis Vlasenko [Tue, 10 Apr 2007 21:38:30 +0000 (21:38 -0000)]
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

17 years ago- mv ip*_main into ip.c; use a dispatcher to save on needless duplication.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 20:11:12 +0000 (20:11 -0000)]
- mv ip*_main into ip.c; use a dispatcher to save on needless duplication.
  Saves a minor 12b.

17 years ago- use enum for the OPs as suggested by vda. No obj-code changes.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 19:30:50 +0000 (19:30 -0000)]
- use enum for the OPs as suggested by vda. No obj-code changes.

17 years ago- forgot this hunk that corrects the usage text of ip
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 19:00:08 +0000 (19:00 -0000)]
- forgot this hunk that corrects the usage text of ip

17 years ago- rewrite the ip applet to be less bloaty
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 18:43:27 +0000 (18:43 -0000)]
- rewrite the ip applet to be less bloaty
- mark libiproute's matches() as deprecated. Convert to index_in_(sub)str_array()!
   text    data     bss     dec     hex filename
    314       0       0     314     13a ip.o.orig
    200       0       0     200      c8 ip.o
Using a smallint for the key would save another byte.

17 years ago- add ATTRIBUTE_DEPRECATED for functions that should be removed in the future.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 18:40:05 +0000 (18:40 -0000)]
- add ATTRIBUTE_DEPRECATED for functions that should be removed in the future.
  This is ment to provide means to point at cruft marked for cleanup.

17 years agoone-liner: fix indentation
Denis Vlasenko [Tue, 10 Apr 2007 17:18:12 +0000 (17:18 -0000)]
one-liner: fix indentation

17 years agobunzip2: big style cleanup. No code changes apart from one s/write/safe_write/
Denis Vlasenko [Tue, 10 Apr 2007 17:16:33 +0000 (17:16 -0000)]
bunzip2: big style cleanup. No code changes apart from one s/write/safe_write/
(verified with objdump).

17 years agoecho: fix regression ("echo" with no arguments didn't print newline.
Denis Vlasenko [Tue, 10 Apr 2007 16:34:00 +0000 (16:34 -0000)]
echo: fix regression ("echo" with no arguments didn't print newline.
echo: use fputs if no options are given. Code growth ~15 bytes.

Old:
# time ./busybox find $bigdir -exec echo {} \; >/dev/null
real    0m2.038s
user    0m0.761s
sys     0m0.953s

New:
# time ./busybox find $bigdir -exec echo {} \; >/dev/null
real    0m1.781s
user    0m0.781s
sys     0m0.939s

For comparison: without NOFORK:
# time find $bigdir -exec echo {} \; >/dev/null
real    1m51.129s
user    0m38.442s
sys     1m3.350s

17 years agoaudit small applets and mark some of them as NOFORK.
Denis Vlasenko [Tue, 10 Apr 2007 15:43:37 +0000 (15:43 -0000)]
audit small applets and mark some of them as NOFORK.
Put big scary warnings in relevant places.

17 years agostyle fixes. No code changes.
Denis Vlasenko [Tue, 10 Apr 2007 15:42:06 +0000 (15:42 -0000)]
style fixes. No code changes.

17 years ago- very minor shrinkage (-3b)
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 14:16:19 +0000 (14:16 -0000)]
- very minor shrinkage (-3b)

17 years ago- use skip_non_whitespace() where appropriate
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:38:35 +0000 (09:38 -0000)]
- use skip_non_whitespace() where appropriate

17 years ago- add prototype for str_tolower()
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:38:07 +0000 (09:38 -0000)]
- add prototype for str_tolower()

17 years ago- add libbb function str_tolower to convert a string to lowercase.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:37:29 +0000 (09:37 -0000)]
- add libbb function str_tolower to convert a string to lowercase.
- shrink wget a bit

17 years agomake xfunctions optionally longjump instead of exit.
Denis Vlasenko [Mon, 9 Apr 2007 21:35:07 +0000 (21:35 -0000)]
make xfunctions optionally longjump instead of exit.
use it for making NOFORK more practical.
touch: make it a NOFORK applet

17 years agofactor out NOFORK/NOEXEC code from find. Use it for xargs too.
Denis Vlasenko [Mon, 9 Apr 2007 21:32:30 +0000 (21:32 -0000)]
factor out NOFORK/NOEXEC code from find. Use it for xargs too.

17 years agoxargs: shrink code, ~80 bytes
Denis Vlasenko [Mon, 9 Apr 2007 21:30:53 +0000 (21:30 -0000)]
xargs: shrink code, ~80 bytes
applets.h: +#undef APPLET_NOEXEC

17 years agowait4pid: if passed with pid < 0, do not set errno - it is already set by exec!
Denis Vlasenko [Mon, 9 Apr 2007 13:21:33 +0000 (13:21 -0000)]
wait4pid: if passed with pid < 0, do not set errno - it is already set by exec!

17 years agoImplement first instance of NOFORK applet - echo
Denis Vlasenko [Mon, 9 Apr 2007 13:04:50 +0000 (13:04 -0000)]
Implement first instance of NOFORK applet - echo
find: use NOFORK/NOEXEC; small -exec buglet also eliminated
vfork_daemon_rexec: honor PREFER_APPLETS
echo: small size improvements

find -exec echo {} \; with PREFER_APPLETS=y runs 4 times faster

17 years agobusybox: fix "<applet>: applet not found" message
Denis Vlasenko [Mon, 9 Apr 2007 03:29:43 +0000 (03:29 -0000)]
busybox: fix "<applet>: applet not found" message

17 years agoImprove STANDALONE_SHELL. "safe" applets are renamed NOEXEC applets
Denis Vlasenko [Mon, 9 Apr 2007 03:11:58 +0000 (03:11 -0000)]
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.

17 years agomsh: smallish code shrinkage; cosmetics
Denis Vlasenko [Mon, 9 Apr 2007 03:06:34 +0000 (03:06 -0000)]
msh: smallish code shrinkage; cosmetics

17 years agomerge busybox.c into applets.c
Denis Vlasenko [Mon, 9 Apr 2007 03:05:48 +0000 (03:05 -0000)]
merge busybox.c into applets.c

17 years agoapplets.h: de-obfuscate
Denis Vlasenko [Sun, 8 Apr 2007 17:30:10 +0000 (17:30 -0000)]
applets.h: de-obfuscate

17 years agoadd some missed statics on constant objects.
Denis Vlasenko [Sun, 8 Apr 2007 16:07:02 +0000 (16:07 -0000)]
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

17 years agoadding small script, mostly for documentational purposes
Denis Vlasenko [Sun, 8 Apr 2007 15:12:21 +0000 (15:12 -0000)]
adding small script, mostly for documentational purposes

17 years agogetopt32: fix llist_t options ordering. llist_rev is not unused.
Denis Vlasenko [Sun, 8 Apr 2007 15:08:42 +0000 (15:08 -0000)]
getopt32: fix llist_t options ordering. llist_rev is not unused.

function                                             old     new   delta
tar_main                                             705     695     -10
sort_main                                            928     918     -10
decode_format_string                                 886     876     -10
run_parts_main                                       197     185     -12
ps_main                                              513     500     -13
wget_main                                           2764    2750     -14
awk_main                                            1014    1000     -14
od_main                                             2886    2866     -20
llist_rev                                             25       -     -25
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/8 up/down: 0/-128)           Total: -128 bytes

17 years agofind: fix -prune more. Add big comment about it.
Denis Vlasenko [Sun, 8 Apr 2007 11:10:43 +0000 (11:10 -0000)]
find: fix -prune more. Add big comment about it.

17 years agofind: fix handling of -prune
Denis Vlasenko [Sun, 8 Apr 2007 10:52:28 +0000 (10:52 -0000)]
find: fix handling of -prune
recursive_actions: uppercase flag constants

17 years agobusybox.net: micro fix
Denis Vlasenko [Sat, 7 Apr 2007 10:49:02 +0000 (10:49 -0000)]
busybox.net: micro fix

17 years agobusybox.net: update "screenshot"
Denis Vlasenko [Sat, 7 Apr 2007 10:46:33 +0000 (10:46 -0000)]
busybox.net: update "screenshot"

17 years agogetopt: use getopt32 for option parsing - inspired by patch by
Denis Vlasenko [Sat, 7 Apr 2007 10:25:04 +0000 (10:25 -0000)]
getopt: use getopt32 for option parsing - inspired by patch by
        Mats Erik Andersson <mats.andersson64@comhem.se>
function                                             old     new   delta
getopt_main                                          809     810      +1
static.BUFFER                                          4       -      -4
shell                                                  8       4      -4
quote                                                  4       -      -4
quiet_output                                           4       -      -4
quiet_errors                                           4       -      -4
long_options_nr                                        4       -      -4
long_options_length                                    4       -      -4
long_options                                         388     384      -4
alternative                                            4       -      -4
shortopts                                             15       -     -15
normalize                                            243     220     -23
.rodata                                           131832  131800     -32
add_longopt                                          200       -    -200
------------------------------------------------------------------------------
(add/remove: 0/9 grow/shrink: 1/4 up/down: 1/-306)           Total: -305 bytes

17 years agodocs: "how to add a patch"
Denis Vlasenko [Sat, 7 Apr 2007 09:35:56 +0000 (09:35 -0000)]
docs: "how to add a patch"

17 years agolibiproute: audit callgraph, shortcut error paths into die() functions.
Denis Vlasenko [Sat, 7 Apr 2007 01:14:45 +0000 (01:14 -0000)]
libiproute: audit callgraph, shortcut error paths into die() functions.
Kill a few statics, made other globals smaller:
oneline is smallint, _SL_ is char

function                                             old     new   delta
print_tunnel                                         693     731     +38
print_route                                         1775    1777      +2
print_addrinfo                                      1495    1497      +2
ipaddr_list_or_flush                                2826    2828      +2
oneline                                                4       1      -3
_SL_                                                   4       1      -3
ipaddr_modify                                       1476    1472      -4
parse_address                                        124     119      -5
ip_parse_common_args                                 429     423      -6
on_off                                                53      46      -7
do_del_ioctl                                         113     106      -7
do_add_ioctl                                         120     113      -7
do_show                                              864     856      -8
iprule_list                                          157     148      -9
do_iptunnel                                          310     299     -11
do_add                                               143     126     -17
get_ctl_fd                                            95      76     -19
set_address                                          108      84     -24
ip_main                                              351     323     -28
static.ifr                                            32       -     -32
parse_args                                          1992    1949     -43
iproute_list_or_flush                               1673    1582     -91
do_iplink                                           1583    1485     -98
filter                                               280       -    -280
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 4/18 up/down: 44/-702)         Total: -658 bytes

17 years agoudhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata.
Denis Vlasenko [Sat, 7 Apr 2007 01:05:47 +0000 (01:05 -0000)]
udhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata.
a few global variables reduced to smallints
function                                             old     new   delta
add_lease                                             75     227    +152
static.blank_chaddr                                    -      16     +16
MAC_BCAST_ADDR                                         -       6      +6
sockfd                                                 4       8      +4
udhcp_run_script                                    1153    1155      +2
state                                                  8       5      -3
listen_mode                                            4       1      -3
perform_release                                      152     148      -4
fd                                                     8       4      -4
blank_chaddr                                          16       -     -16
udhcpc_main                                         2518    2497     -21
.rodata                                           131864  131832     -32
oldest_expired_lease                                  61       -     -61
clear_lease                                          127       -    -127
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 3/6 up/down: 180/-271)          Total: -91 bytes

17 years agocomm: eliminate statics
Denis Vlasenko [Sat, 7 Apr 2007 00:45:27 +0000 (00:45 -0000)]
comm: eliminate statics