Denis Vlasenko
c5b737231d
volude_id: remove unused fields and functions which were setting them
...
function old new delta
uuidcache_init 567 704 +137
findfs_main - 125 +125
packed_usage 23662 23694 +32
static.drive_name_string - 14 +14
applet_names 1815 1822 +7
applet_main 1104 1108 +4
volume_id_open_node 35 38 +3
applet_nameofs 552 554 +2
get_devname_from_label 78 79 +1
applet_install_loc 138 139 +1
volume_id_set_label_unicode16 31 27 -4
volume_id_set_label_string 74 70 -4
get_devname_from_uuid 63 59 -4
fs1 12 8 -4
volume_id_set_unicode16 209 202 -7
volume_id_free_buffer 71 56 -15
free_volume_id 52 37 -15
volume_id_probe_luks 97 79 -18
volume_id_set_usage_part 21 - -21
volume_id_probe_ufs 148 126 -22
volume_id_probe_lsi_mega_raid 131 108 -23
volume_id_probe_highpoint_45x_raid 127 104 -23
volume_id_probe_highpoint_37x_raid 87 63 -24
volume_id_set_usage 28 - -28
volume_id_probe_romfs 121 93 -28
volume_id_set_label_raw 30 - -30
volume_id_probe_promise_fasttrack_raid 174 144 -30
volume_id_set_uuid 373 342 -31
volume_id_probe_xfs 122 91 -31
volume_id_probe_jfs 138 107 -31
volume_id_probe_ocfs2 139 107 -32
volume_id_probe_lvm1 90 58 -32
volume_id_probe_cramfs 106 63 -43
volume_id_probe_via_raid 145 101 -44
volume_id_probe_intel_software_raid 153 108 -45
volume_id_probe_minix 121 74 -47
volume_id_probe_udf 682 632 -50
volume_id_probe_nvidia_raid 158 108 -50
volume_id_probe_lvm2 128 78 -50
volume_id_probe_hpfs 117 67 -50
volume_id_probe_ext 143 93 -50
volume_id_probe_linux_raid 191 139 -52
volume_id_probe_sysv 244 187 -57
volume_id_probe_silicon_medley_raid 158 97 -61
usage_to_string 64 - -64
volume_id_probe_linux_swap 263 198 -65
volume_id_get_buffer 372 307 -65
volume_id_probe_iso9660 412 332 -80
volume_id_probe_hfs_hfsplus 888 806 -82
volume_id_probe_ntfs 396 294 -102
volume_id_probe_vfat 980 872 -108
volume_id_probe_reiserfs 417 268 -149
dev_get_major_minor 175 - -175
uuidcache_check_device 692 499 -193
volume_id_probe_mac_partition_map 697 - -697
------------------------------------------------------------------------------
(add/remove: 2/6 grow/shrink: 8/39 up/down: 326/-2836) Total: -2510 bytes
text data bss dec hex filename
797220 662 7420 805302 c49b6 busybox_old
794244 662 7420 802326 c3e16 busybox_unstripped
2008-03-17 09:21:26 +00:00
Denis Vlasenko
aa9b1828b9
tftpd: new applet (mostly using existing code for tftp)
...
function old new delta
tftp_protocol - 1173 +1173
tftpd_main - 500 +500
tftp_option_get - 102 +102
packed_usage 23650 23662 +12
applet_names 1809 1815 +6
applet_main 1100 1104 +4
applet_nameofs 550 552 +2
tftp_main 302 301 -1
get_nport 32 - -32
tftp 1172 - -1172
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 4/1 up/down: 1799/-1205) Total: 594 bytes
text data bss dec hex filename
796479 662 7420 804561 c46d1 busybox_old
797153 662 7420 805235 c4973 busybox_unstripped
2008-03-17 09:10:39 +00:00
Denis Vlasenko
62a90cdd74
*: shrink by using [f]open_or_warn_stdin where appropriate
...
function old new delta
lsattr_main 62 143 +81
open_or_warn_stdin - 36 +36
fclose_if_not_stdin 20 47 +27
xfopen_stdin - 20 +20
tac_main 336 356 +20
cksum_main 249 259 +10
bb_argv_dash - 8 +8
su_main 448 455 +7
cmp_main 630 633 +3
passwd_main 1072 1074 +2
uudecode_main 317 315 -2
text_yank 110 108 -2
handle_incoming_and_exit 2653 2651 -2
flags 5 1 -4
write_leases 235 230 -5
fopen_or_warn_stdin 48 42 -6
fold_main 648 642 -6
static.argv_dash 8 - -8
sum_main 142 128 -14
tail_main 1237 1221 -16
sed_main 711 695 -16
cmp_xfopen_input 17 - -17
bb_cat 113 96 -17
catv_main 328 306 -22
strings_main 457 434 -23
hash_file 298 274 -24
sum_file 353 325 -28
sort_main 904 859 -45
expand_main 736 686 -50
cut_main 1116 1065 -51
md5_sha1_sum_main 549 493 -56
lsattr_args 90 - -90
read_stduu 408 255 -153
------------------------------------------------------------------------------
(add/remove: 3/3 grow/shrink: 7/20 up/down: 214/-657) Total: -443 bytes
text data bss dec hex filename
797417 658 7428 805503 c4a7f busybox_old
796973 658 7428 805059 c48c3 busybox_unstripped
2008-03-17 09:07:36 +00:00
Denis Vlasenko
85c247161b
*: fix fallout from -Wunused-parameter
...
function old new delta
bbunpack 358 366 +8
passwd_main 1070 1072 +2
handle_incoming_and_exit 2651 2653 +2
getpty 88 86 -2
script_main 975 972 -3
inetd_main 2036 2033 -3
dname_enc 377 373 -4
make_new_session 474 462 -12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/5 up/down: 12/-24) Total: -12 bytes
text data bss dec hex filename
797429 658 7428 805515 c4a8b busybox_old
797417 658 7428 805503 c4a7f busybox_unstripped
2008-03-17 09:04:04 +00:00
Denis Vlasenko
081eb71ebd
dnsd: properly set _src_ IP:port on outgoing UDP packets
...
function old new delta
send_to_from - 258 +258
dnsd_main 1500 1568 +68
interrupt 17 19 +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/0 up/down: 328/0) Total: 328 bytes
text data bss dec hex filename
797101 658 7428 805187 c4943 busybox_old
797429 658 7428 805515 c4a8b busybox_unstripped
2008-03-17 09:02:21 +00:00
Denis Vlasenko
68404f13d4
*: add -Wunused-parameter; fix resulting breakage
...
function old new delta
procps_scan 1265 1298 +33
aliascmd 278 283 +5
parse_file_cmd 116 120 +4
dname_enc 373 377 +4
setcmd 90 93 +3
execcmd 57 60 +3
count_lines 72 74 +2
process_command_subs 340 339 -1
test_main 409 407 -2
mknod_main 179 177 -2
handle_incoming_and_exit 2653 2651 -2
argstr 1312 1310 -2
shiftcmd 131 128 -3
exitcmd 46 43 -3
dotcmd 297 294 -3
breakcmd 86 83 -3
evalpipe 353 349 -4
evalcommand 1180 1176 -4
evalcmd 109 105 -4
send_tree 374 369 -5
mkfifo_main 82 77 -5
evalsubshell 152 147 -5
typecmd 75 69 -6
letcmd 61 55 -6
add_cmd 1190 1183 -7
main 891 883 -8
ash_main 1415 1407 -8
parse_stream 1377 1367 -10
alloc_procps_scan 55 - -55
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 7/21 up/down: 54/-148) Total: -94 bytes
text data bss dec hex filename
797195 658 7428 805281 c49a1 busybox_old
797101 658 7428 805187 c4943 busybox_unstripped
2008-03-17 09:00:54 +00:00
Denis Vlasenko
397de617f3
help text: regularize format, and shrink
...
getty: shrink, and improve comments
mount: OPT_ALL is superfluous, we already have OPT_a
function old new delta
bcode 47 25 -22
getty_main 2503 2349 -154
packed_usage 23928 23698 -230
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-406) Total: -406 bytes
text data bss dec hex filename
798031 658 7428 806117 c4ce5 busybox_old
797604 658 7428 805690 c4b3a busybox_unstripped
2008-03-17 08:55:44 +00:00
Denis Vlasenko
afc4113ed7
fuser: bugfixes and shrink. It was assuming that xmalloc zeroes returned area!
...
function old new delta
scan_dir_links - 106 +106
add_inode - 89 +89
scan_link - 78 +78
file_to_dev_inode - 64 +64
search_dev_inode - 63 +63
add_pid - 39 +39
packed_usage 23948 23928 -20
fuser_add_pid 49 - -49
fuser_file_to_dev_inode 64 - -64
fuser_search_dev_inode 77 - -77
fuser_scan_link 91 - -91
fuser_scan_dir_links 108 - -108
fuser_add_inode 124 - -124
fuser_main 1450 1243 -207
------------------------------------------------------------------------------
(add/remove: 6/6 grow/shrink: 0/2 up/down: 439/-740) Total: -301 bytes
text data bss dec hex filename
798327 658 7428 806413 c4e0d busybox_old
797988 658 7428 806074 c4cba busybox_unstripped
2008-03-17 08:44:58 +00:00
Denis Vlasenko
cdf62770af
dos2unix: tiny shrink
...
login,su: fix setup_environment() so that it works as intended
(parameter names were a bit misleading)
fdisk: shrink
help text: shrink
function old new delta
login_main 1658 1701 +43
setup_environment 206 203 -3
dos_compatible_flag 4 1 -3
dos2unix_main 383 375 -8
get_boot 1724 1702 -22
fdisk_main 2949 2889 -60
packed_usage 24250 23948 -302
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/6 up/down: 43/-398) Total: -355 bytes
text data bss dec hex filename
798768 661 7428 806857 c4fc9 busybox_old
798327 658 7428 806413 c4e0d busybox_unstripped
2008-03-17 08:42:43 +00:00
Denis Vlasenko
3f165fa5b3
libbb: introduce and use sigprocmask_allsigs and sigaction_set.
...
libbb: rename sig_pause to wait_for_any_sig.
2008-03-17 08:29:08 +00:00
Denis Vlasenko
8e2cfec1cd
libbb: introduse and use signal_[no_]SA_RESTART_empty_mask and sigaction_set
...
signal_SA_RESTART_empty_mask - 65 +65
signal_no_SA_RESTART_empty_mask - 54 +54
dd_main 1325 1369 +44
sigaction_set - 19 +19
dname_enc 373 377 +4
UNSPEC_print 64 66 +2
setsignal 296 294 -2
bb_signals_recursive 95 92 -3
bb_askpass 367 361 -6
inetd_main 1810 1797 -13
rx_main 912 883 -29
sigdelset 32 - -32
__sigdelset 32 - -32
__GI_sigdelset 32 - -32
sighup_handler 84 37 -47
arping_main 1844 1797 -47
fsck_main 1869 1807 -62
run_list 1917 1844 -73
vlock_main 492 409 -83
progressmeter 883 798 -85
handle_incoming_and_exit 2737 2651 -86
------------------------------------------------------------------------------
(add/remove: 3/3 grow/shrink: 3/12 up/down: 188/-632) Total: -444 bytes
2008-03-12 23:19:35 +00:00
Denis Vlasenko
4e6d5117b8
inetd: make it NOMMU-capable and IPv6-friendly. Lots of renames
...
of variable/function names
Total: -2474 bytes
text data bss dec hex filename
802215 661 7452 810328 c5d58 busybox_old
800120 661 7428 808209 c5511 busybox_unstripped
2008-03-12 22:14:34 +00:00
Denis Vlasenko
4e6c8120a5
crond: make it NOMMU-capable
...
function old new delta
safe_setenv4 - 62 +62
ForkJob 472 511 +39
change_identity 21 57 +36
ParseField 564 571 +7
SynchronizeDir 178 176 -2
LogLevel 4 - -4
LogFile 4 - -4
FileBase 4 - -4
DebugOpt 4 - -4
CDir 4 - -4
DeleteFile 141 132 -9
packed_usage 24248 24228 -20
crondlog 157 113 -44
change_identity_e2str 54 - -54
SynchronizeFile 729 671 -58
crond_main 1555 1404 -151
------------------------------------------------------------------------------
(add/remove: 1/6 grow/shrink: 3/6 up/down: 144/-358) Total: -214 bytes
2008-03-12 22:10:25 +00:00
Paul Fox
35e9c5d83a
fixups to vi usage, and move the initial redraw() past the
...
execution of commands supplied by -c or EXINIT, so their
effect is displayed correctly.
2008-03-06 16:26:12 +00:00
Denis Vlasenko
fb29038b59
libbb: inntroduce and use bb_pstrcmp() and qsort_string_vector()
...
msh: glob0/glob1/glob2/glob3 are just a sorting routine! remove them.
bb_pstrcmp - 25 +25
qsort_string_vector - 24 +24
expand 2209 2227 +18
getopt32 1359 1370 +11
passwd_main 1072 1074 +2
handle_incoming_and_exit 2737 2735 -2
UNSPEC_print 66 64 -2
forkexec 1343 1339 -4
input_tab 3338 3330 -8
get_dir 185 177 -8
expmeta 481 473 -8
cmdputs 405 397 -8
xstrcmp 12 - -12
find_pair 187 167 -20
match_compare 25 - -25
dir_strcmp 25 - -25
glob2 27 - -27
glob3 34 - -34
glob1 256 - -256
------------------------------------------------------------------------------
(add/remove: 2/6 grow/shrink: 3/8 up/down: 80/-439) Total: -359 bytes
2008-03-02 12:51:26 +00:00
Denis Vlasenko
574f2f4394
*: add optimization barrier to all "G trick" locations
2008-02-27 18:41:59 +00:00
Denis Vlasenko
5014dada3f
script: new applet by Pascal Bellard <pascal.bellard AT ads-lu.com>
2008-02-27 11:54:59 +00:00
Denis Vlasenko
8195d20e36
sendmail: yet another maintainer's update
2008-02-27 09:39:04 +00:00
Denis Vlasenko
17db1a9ac1
sendmail: update from maintainer
2008-02-26 21:13:17 +00:00
Denis Vlasenko
be048f21e6
syslogd: optional support for dropping dups. closes bug 436.
2008-02-26 20:13:52 +00:00
Denis Vlasenko
06aed4316e
ifenslave: new applet. closes bug 115.
2008-02-26 18:25:24 +00:00
Denis Vlasenko
6f1713f216
*: intrduce and use safe_gethostname. By Tito <farmatito AT tiscali.it>
...
safe_gethostname - 48 +48
glob3 35 37 +2
timestamp_and_log 314 315 +1
udhcp_send_kernel_packet 234 231 -3
scan_tree 275 271 -4
passwd_main 1074 1070 -4
print_login_prompt 68 58 -10
obscure 392 377 -15
syslogd_main 882 866 -16
print_login_issue 516 478 -38
hostname_main 278 223 -55
parse_and_put_prompt 825 756 -69
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/9 up/down: 51/-214) Total: -163 bytes
text data bss dec hex filename
798791 728 7484 807003 c505b busybox_old
798631 728 7484 806843 c4fbb busybox_unstripped
2008-02-25 23:23:58 +00:00
Denis Vlasenko
394eebed66
lpd: spool mode added by Vladimir
...
lpr: more robust error reporting
*: introduce and use xchroot
libbb: full_read/write now will report partial data counts prior to error
isdirectory.c: style fixes
lpd_main 249 486 +237
xchroot - 29 +29
get_response_or_say_and_die 110 139 +29
full_write 52 60 +8
full_read 55 63 +8
static.newline 1 - -1
switch_root_main 404 400 -4
chpst_main 1089 1079 -10
getopt32 1370 1359 -11
chroot_main 115 101 -14
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 4/4 up/down: 311/-40) Total: 271 bytes
text data bss dec hex filename
798472 728 7484 806684 c4f1c busybox_old
798775 728 7484 806987 c504b busybox_unstripped
2008-02-25 20:30:24 +00:00
Denis Vlasenko
f99afb5dff
lpd: new applet by Vladimir Dronnikov <dronnikov AT gmail.com>
2008-02-24 23:32:36 +00:00
Denis Vlasenko
4f82bdb050
lpr,lpq: rework by dronnikov AT gmail.com
2008-02-24 18:44:20 +00:00
Denis Vlasenko
400d8bb45e
less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)
...
*: minor shrink
2008-02-24 13:36:01 +00:00
Denis Vlasenko
33196372be
less: update line input so that it doesn't interfere with
...
screen update. Makes "man bash", [enter], [/],
<enter search pattern>, [enter] more usable - manpage
draws as you enter the pattern! Yay!!
less: fix bug where backspace wasn't actually deleting chars
less: "examine file with empty name" doesn't abort anymore.
libbb: add "all fatal signals" mask.
getch_nowait - 207 +207
status_print - 105 +105
examine_file 64 87 +23
move_cursor - 16 +16
m_status_print 185 195 +10
less_main 1656 1663 +7
decode_format_string 790 795 +5
test_main 403 405 +2
process0_stdin 247 249 +2
passwd_main 1070 1072 +2
less_gets 196 178 -18
buffer_print 169 71 -98
less_getch 362 138 -224
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 7/3 up/down: 379/-340) Total: 39 bytes
text data bss dec hex filename
798329 740 7484 806553 c4e99 busybox_old
798368 740 7484 806592 c4ec0 busybox_unstripped
2008-02-23 01:25:38 +00:00
Denis Vlasenko
68444b9f0c
lpr and lpq applets by Walter Harms.
...
text data bss dec hex filename
392 0 0 392 188 lpq.o
1378 0 0 1378 562 lpr.o
142 0 0 142 8e parse_prt.o
2008-02-22 22:24:48 +00:00
Denis Vlasenko
e376d454bb
libbb: introduce and use nonblock_safe_read(). Yay!
...
Our shells are immune from this nasty O_NONBLOCK now!
function old new delta
nonblock_safe_read - 78 +78
file_get 276 295 +19
generateMTFValues 428 435 +7
read_line_input 1776 1772 -4
preadbuffer 543 450 -93
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/2 up/down: 104/-97) Total: 7 bytes
text data bss dec hex filename
615190 715 23924 639829 9c355 busybox_old
615168 715 23924 639807 9c33f busybox_unstripped
2008-02-20 22:23:24 +00:00
Denis Vlasenko
5233cd3800
chat: new applet by dronnikov AT gmail.com. With all options on:
...
function old new delta
chat_main - 1230 +1230
unescape - 135 +135
packed_usage 23802 23922 +120
signal_handler 123 131 +8
input_backward 123 128 +5
applet_names 1775 1780 +5
applet_main 1076 1080 +4
applet_nameofs 538 540 +2
exitcode - 1 +1
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 6/0 up/down: 1510/0) Total: 1510 bytes
2008-02-18 23:24:46 +00:00
Denis Vlasenko
de7684a309
support for mount by label (not yet tested)
...
Also adds findfs applet. Closes bug 1143.
2008-02-18 21:08:49 +00:00
Denis Vlasenko
c9ca0a3274
mount: recognize "dirsync" (closes bug 835)
...
mount: sanitize environ if called by non-root
*: adjust for slightly different sanitize routine
2008-02-18 11:08:33 +00:00
Denis Vlasenko
cb448fe01b
libbb: introduce and use xrename and rename_or_warn.
2008-02-17 14:28:53 +00:00
Denis Vlasenko
b1d8e7db0f
mount: make -f work even without mtab support
...
(Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)
2008-02-16 23:28:42 +00:00
Denis Vlasenko
25591c322c
libbb: introduce bb_signals and bb_signals_recursive,
...
which sets same handler for many signals. sig_catch is nuked
(bb_signals_recursive is more descriptive name).
*: use them as appropriate.
function old new delta
bb_signals_recursive - 95 +95
bb_signals - 52 +52
run_command 258 273 +15
svlogd_main 1368 1377 +9
runsv_main 1746 1752 +6
runsvdir_main 1643 1646 +3
UNSPEC_print 64 66 +2
time_main 1128 1127 -1
...
resize_main 246 210 -36
sig_catch 63 - -63
set_fatal_sighandler 85 14 -71
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 5/24 up/down: 182/-548) Total: -366 bytes
2008-02-16 22:58:56 +00:00
Denis Vlasenko
3718832a15
*: more readable handling of pipe fds. No code changes.
2008-02-16 13:20:56 +00:00
Denis Vlasenko
284d0faed6
random s/short/int/
...
add_cmd 1189 1190 +1
xconnect_ftpdata 118 117 -1
data_align 86 84 -2
process_files 2101 2096 -5
forkexec 1345 1334 -11
2008-02-16 13:18:17 +00:00
Denis Vlasenko
069e347863
crontab: almost complete rewrite
...
crontab: make options consistent with other implementations
text data bss dec hex filename
2042 4 0 2046 7fe busybox.t1/miscutils/crontab.o
1331 0 0 1331 533 busybox.t2/miscutils/crontab.o
function old new delta
edit_file 733 956 +223
open_as_user - 171 +171
packed_usage 23652 23650 -2
CDir 8 4 -4
ChangeUser 139 - -139
crontab_main 1522 616 -906
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/3 up/down: 394/-1051) Total: -657 bytes
2008-02-16 13:17:13 +00:00
Mike Frysinger
977bc6a137
we need to pass back the rtc device name that was actually used so that we can turn around and check its sysfs status
2008-02-15 07:19:03 +00:00
Mike Frysinger
6b160e490d
split some rtc funcs out of hwclock and into an rtc header/lib so that the new rtcwake applet as well as hwclock can utilize the same code
2008-02-15 02:27:19 +00:00
Mike Frysinger
be7d2a8ded
sendmail is lexically after selinux, so fix the order
2008-02-15 01:43:22 +00:00
Mike Frysinger
1e47c429bf
fix microcom usage
2008-02-15 01:34:14 +00:00
Denis Vlasenko
e00e5025ec
tar: real support for -p. +200 if selected.
...
By Natanael Copa <natanael.copa at gmail.com>
2008-02-14 20:37:54 +00:00
Denis Vlasenko
b2e578a1f2
umount: instead of non-standard -D, use -d with opposite meaning
...
(closes bug 1604)
umount: do not try to free loop device or erase mtab if remounted ro
umount: do not complain several times about the same mountpoint
function old new delta
umount_main 646 638 -8
packed_usage 23662 23652 -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-18) Total: -18 bytes
2008-02-14 12:00:21 +00:00
Denis Vlasenko
87cf2ee8ab
tar: move FNM_LEADING_DIR #define to tar.c - no other users.
...
Closes bug 1332.
2008-02-13 17:06:53 +00:00
Denis Vlasenko
9d96af2e83
mkswap: fix help text to not lie about supported options.
...
mkswap: use uint32, not int, to match kernel.
mkswap: optimization: use pre-zeroed buffer
2008-02-13 15:35:52 +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
d56e3ccf96
microcom: split -d (delay) option away from -t
2008-02-09 11:37:21 +00:00
Denis Vlasenko
761e1d1462
mktemp: don't advertise -q option
2008-02-09 06:29:32 +00:00
Denis Vlasenko
65581f3ed1
mktemp: support -p DIR (Timo Teras <timo.teras at iki.fi>)
...
packed_usage 23595 23660 +65
mktemp_main 139 157 +18
2008-02-09 06:26:53 +00:00