Denis Vlasenko [Sun, 15 Apr 2007 08:38:50 +0000 (08:38 -0000)]
xargs: simplify word list management
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
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.
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)
Denis Vlasenko [Sat, 14 Apr 2007 10:10:40 +0000 (10:10 -0000)]
lineedit: do not try to open NULL history file
Denis Vlasenko [Sat, 14 Apr 2007 10:09:57 +0000 (10:09 -0000)]
hush: use NOFORK applets as appropriate. Net reduction of code size.
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>)
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.
Denis Vlasenko [Fri, 13 Apr 2007 23:22:00 +0000 (23:22 -0000)]
style fixes
Denis Vlasenko [Fri, 13 Apr 2007 22:07:21 +0000 (22:07 -0000)]
sourse_route_list -> source_route_list
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)
Denis Vlasenko [Fri, 13 Apr 2007 19:56:56 +0000 (19:56 -0000)]
hush: more style fixes.
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.
Denis Vlasenko [Fri, 13 Apr 2007 19:44:22 +0000 (19:44 -0000)]
shell/: add SUSv3 doc for fast & easy reference
Denis Vlasenko [Fri, 13 Apr 2007 16:32:26 +0000 (16:32 -0000)]
fix typo in comment
Denis Vlasenko [Fri, 13 Apr 2007 10:00:12 +0000 (10:00 -0000)]
find: add support for -delete, -path (by Natanael Copa)
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)
Denis Vlasenko [Thu, 12 Apr 2007 20:33:01 +0000 (20:33 -0000)]
login: fixing my brainfart: xspawn(t_argv) <- was using argv!
Mike Frysinger [Thu, 12 Apr 2007 18:29:27 +0000 (18:29 -0000)]
make sure we free the grep data as well
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.
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
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.
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
Bernhard Reutner-Fischer [Thu, 12 Apr 2007 11:36:56 +0000 (11:36 -0000)]
- shrink iproute a bit (-200 bytes). Untested
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
Denis Vlasenko [Thu, 12 Apr 2007 00:32:05 +0000 (00:32 -0000)]
style fixes. No code changes
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
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>)
Denis Vlasenko [Wed, 11 Apr 2007 19:27:22 +0000 (19:27 -0000)]
fix typo in doc
Denis Vlasenko [Wed, 11 Apr 2007 17:04:29 +0000 (17:04 -0000)]
style fixes, no code changes.
Denis Vlasenko [Wed, 11 Apr 2007 17:03:19 +0000 (17:03 -0000)]
rename: run_applet_by_name -> run_applet_and_exit
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.
Denis Vlasenko [Wed, 11 Apr 2007 16:16:41 +0000 (16:16 -0000)]
Add NOFORK/NOEXEC documentation.
Denis Vlasenko [Wed, 11 Apr 2007 07:36:31 +0000 (07:36 -0000)]
fix typo in comment
Denis Vlasenko [Wed, 11 Apr 2007 07:26:56 +0000 (07:26 -0000)]
fix misplaced #if
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
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
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
Denis Vlasenko [Tue, 10 Apr 2007 21:41:16 +0000 (21:41 -0000)]
xargs: fix my brain fart (resulted in memory leak)
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.
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
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.
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.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 19:00:08 +0000 (19:00 -0000)]
- forgot this hunk that corrects the usage text of ip
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.
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.
Denis Vlasenko [Tue, 10 Apr 2007 17:18:12 +0000 (17:18 -0000)]
one-liner: fix indentation
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).
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
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.
Denis Vlasenko [Tue, 10 Apr 2007 15:42:06 +0000 (15:42 -0000)]
style fixes. No code changes.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 14:16:19 +0000 (14:16 -0000)]
- very minor shrinkage (-3b)
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:38:35 +0000 (09:38 -0000)]
- use skip_non_whitespace() where appropriate
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:38:07 +0000 (09:38 -0000)]
- add prototype for str_tolower()
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
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
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.
Denis Vlasenko [Mon, 9 Apr 2007 21:30:53 +0000 (21:30 -0000)]
xargs: shrink code, ~80 bytes
applets.h: +#undef APPLET_NOEXEC
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!
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
Denis Vlasenko [Mon, 9 Apr 2007 03:29:43 +0000 (03:29 -0000)]
busybox: fix "<applet>: applet not found" message
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.
Denis Vlasenko [Mon, 9 Apr 2007 03:06:34 +0000 (03:06 -0000)]
msh: smallish code shrinkage; cosmetics
Denis Vlasenko [Mon, 9 Apr 2007 03:05:48 +0000 (03:05 -0000)]
merge busybox.c into applets.c
Denis Vlasenko [Sun, 8 Apr 2007 17:30:10 +0000 (17:30 -0000)]
applets.h: de-obfuscate
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
Denis Vlasenko [Sun, 8 Apr 2007 15:12:21 +0000 (15:12 -0000)]
adding small script, mostly for documentational purposes
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
Denis Vlasenko [Sun, 8 Apr 2007 11:10:43 +0000 (11:10 -0000)]
find: fix -prune more. Add big comment about it.
Denis Vlasenko [Sun, 8 Apr 2007 10:52:28 +0000 (10:52 -0000)]
find: fix handling of -prune
recursive_actions: uppercase flag constants
Denis Vlasenko [Sat, 7 Apr 2007 10:49:02 +0000 (10:49 -0000)]
busybox.net: micro fix
Denis Vlasenko [Sat, 7 Apr 2007 10:46:33 +0000 (10:46 -0000)]
busybox.net: update "screenshot"
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
Denis Vlasenko [Sat, 7 Apr 2007 09:35:56 +0000 (09:35 -0000)]
docs: "how to add a patch"
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
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
Denis Vlasenko [Sat, 7 Apr 2007 00:45:27 +0000 (00:45 -0000)]
comm: eliminate statics
Denis Vlasenko [Sat, 7 Apr 2007 00:44:31 +0000 (00:44 -0000)]
random small shrinkage and elimination of statics
Denis Vlasenko [Fri, 6 Apr 2007 10:41:05 +0000 (10:41 -0000)]
nc: code shrinkage, bugfixes. -50 bytes code size
Denis Vlasenko [Thu, 5 Apr 2007 22:19:43 +0000 (22:19 -0000)]
svn add match_fstype.c :(
Denis Vlasenko [Thu, 5 Apr 2007 21:57:47 +0000 (21:57 -0000)]
[u]mount: extend -t option (Roy Marples <uberlord@gentoo.org>)
Denis Vlasenko [Thu, 5 Apr 2007 21:29:42 +0000 (21:29 -0000)]
diff: fix segfault on empty dirs (Peter Korsgaard <peter.korsgaard@barco.com>)
Denis Vlasenko [Thu, 5 Apr 2007 21:25:15 +0000 (21:25 -0000)]
libbb: add xunlink()
patch: do not try to delete same file twice
Mike Frysinger [Thu, 5 Apr 2007 21:14:29 +0000 (21:14 -0000)]
less intrusive export of FLTFLAGS
Mike Frysinger [Thu, 5 Apr 2007 21:10:59 +0000 (21:10 -0000)]
set default FLTFLAGS for a fatty stack
Denis Vlasenko [Thu, 5 Apr 2007 21:01:06 +0000 (21:01 -0000)]
find: improve usage text (Natanael Copa <natanael.copa@gmail.com>)
Denis Vlasenko [Thu, 5 Apr 2007 20:57:10 +0000 (20:57 -0000)]
nc: missed exit() in signal handler
Denis Vlasenko [Thu, 5 Apr 2007 20:26:28 +0000 (20:26 -0000)]
nc: port nc 1.10 to busybox
Bernhard Reutner-Fischer [Thu, 5 Apr 2007 13:16:39 +0000 (13:16 -0000)]
- clean up addgroup, fix adding users to existing groups and make it optional (Tito)
Bernhard Reutner-Fischer [Thu, 5 Apr 2007 12:27:12 +0000 (12:27 -0000)]
- bail out if either file does not exist
Avoids filling my scrollback-buffer with superfluous information ;)
Bernhard Reutner-Fischer [Thu, 5 Apr 2007 10:31:47 +0000 (10:31 -0000)]
- add -s|--spider which only checks if the file exists but does not download it's content.
Closes #1291
Bernhard Reutner-Fischer [Thu, 5 Apr 2007 09:40:12 +0000 (09:40 -0000)]
- size and prune were mixed up
Bernhard Reutner-Fischer [Thu, 5 Apr 2007 09:21:24 +0000 (09:21 -0000)]
- fix segfault in reset_ino_dev_hashtable() when *hashtable was null.
Seen in the testsuite for du -l .../testsuite on exit with CLEAN_UP enabled.
Denis Vlasenko [Thu, 5 Apr 2007 00:35:43 +0000 (00:35 -0000)]
find: missed 'ststic' on const data
Denis Vlasenko [Wed, 4 Apr 2007 23:41:35 +0000 (23:41 -0000)]
find: un-DESKTOPize (Kai Schwenzfeier <niteblade@gmx.net>)
find: -group, -depth (Natanael Copa <natanael.copa@gmail.com>)
find: make constant array static, declare PARM_xx constants with enum
Bernhard Reutner-Fischer [Wed, 4 Apr 2007 20:52:03 +0000 (20:52 -0000)]
- sed -e "s/char[[:space:]]*\*[[:space:]]*argv\[\]/char **argv/g"
Bernhard Reutner-Fischer [Wed, 4 Apr 2007 20:29:15 +0000 (20:29 -0000)]
- minor shrinkage
text data bss dec hex filename
1431 0 4 1435 59b tail.o.orig
1396 0 0 1396 574 tail.o
Bernhard Reutner-Fischer [Wed, 4 Apr 2007 17:58:39 +0000 (17:58 -0000)]
- remove debugging output. sorry..
Bernhard Reutner-Fischer [Wed, 4 Apr 2007 17:57:55 +0000 (17:57 -0000)]
- note cosmetic glitch in tail
Denis Vlasenko [Wed, 4 Apr 2007 17:49:47 +0000 (17:49 -0000)]
reword comment