brctl: eliminate stray data object

brctl: use constant fd to reduce parameter passing
runsvdir: do not use data/bss
od: reuse bb_argv_dash
last: do not go into endless loop on read error
mount: make it not fail scripts/find_bad_common_bufsiz check
dc: add INIT_G() (no-op for dc, but we want uniform usage of "G trick")

function                                             old     new   delta
runsvdir_main                                       1646    1672     +26
set_pgrp                                               1       -      -1
exitsoon                                               1       -      -1
check                                                679     678      -1
svnum                                                  4       -      -4
svdir                                                  4       -      -4
sv                                                     4       -      -4
stamplog                                               4       -      -4
rploglen                                               4       -      -4
rplog                                                  4       -      -4
mount_main                                           995     988      -7
static.default_file_list                               8       -      -8
pfd                                                    8       -      -8
logpipe                                                8       -      -8
static.info                                           20       -     -20
brctl_main                                           767     739     -28
------------------------------------------------------------------------------
(add/remove: 0/12 grow/shrink: 1/3 up/down: 26/-106)          Total: -80 bytes
   text    data     bss     dec     hex filename
 793327     662    7412  801401   c3a79 busybox_old
 793329     641    7372  801342   c3a3e busybox_unstripped
This commit is contained in:
Denis Vlasenko
2008-03-17 09:33:45 +00:00
parent b44c790e41
commit d0a071a528
6 changed files with 85 additions and 58 deletions

View File

@@ -39,9 +39,8 @@ int last_main(int argc, char **argv ATTRIBUTE_UNUSED)
file = xopen(bb_path_wtmp_file, O_RDONLY);
printf("%-10s %-14s %-18s %-12.12s %s\n", "USER", "TTY", "HOST", "LOGIN", "TIME");
while ((n = safe_read(file, (void*)&ut, sizeof(struct utmp))) != 0) {
if (n != sizeof(struct utmp)) {
while ((n = full_read(file, &ut, sizeof(ut))) > 0) {
if (n != sizeof(ut)) {
bb_perror_msg_and_die("short read");
}
@@ -53,16 +52,14 @@ int last_main(int argc, char **argv ATTRIBUTE_UNUSED)
else if (strncmp(ut.ut_user, "runlevel", 7) == 0)
ut.ut_type = RUN_LVL;
} else {
if (!ut.ut_name[0] || strcmp(ut.ut_name, "LOGIN") == 0 ||
ut.ut_name[0] == 0)
{
if (ut.ut_name[0] == '\0' || strcmp(ut.ut_name, "LOGIN") == 0) {
/* Don't bother. This means we can't find how long
* someone was logged in for. Oh well. */
continue;
}
if (ut.ut_type != DEAD_PROCESS &&
ut.ut_name[0] && ut.ut_line[0])
{
if (ut.ut_type != DEAD_PROCESS
&& ut.ut_name[0] && ut.ut_line[0]
) {
ut.ut_type = USER_PROCESS;
}
if (strcmp(ut.ut_name, "date") == 0) {
@@ -71,7 +68,7 @@ int last_main(int argc, char **argv ATTRIBUTE_UNUSED)
}
}
if (ut.ut_type!=USER_PROCESS) {
if (ut.ut_type != USER_PROCESS) {
switch (ut.ut_type) {
case OLD_TIME:
case NEW_TIME: