diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 09:33:45 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 09:33:45 +0000 |
| commit | d0a071a5281f8ba4b291f0c3beb74bee1f8df6a3 (patch) | |
| tree | 37e443b155eb66fed37e889828fa60023c84010f /miscutils | |
| parent | b44c790e41e281965955a83408f35ea53ecdb3d2 (diff) | |
| download | busybox-w32-d0a071a5281f8ba4b291f0c3beb74bee1f8df6a3.tar.gz busybox-w32-d0a071a5281f8ba4b291f0c3beb74bee1f8df6a3.tar.bz2 busybox-w32-d0a071a5281f8ba4b291f0c3beb74bee1f8df6a3.zip | |
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
Diffstat (limited to 'miscutils')
| -rw-r--r-- | miscutils/dc.c | 4 | ||||
| -rw-r--r-- | miscutils/last.c | 17 |
2 files changed, 11 insertions, 10 deletions
diff --git a/miscutils/dc.c b/miscutils/dc.c index 68ecd8a3f..612937556 100644 --- a/miscutils/dc.c +++ b/miscutils/dc.c | |||
| @@ -19,6 +19,8 @@ enum { STACK_SIZE = (COMMON_BUFSIZE - offsetof(struct globals, stack)) / sizeof( | |||
| 19 | #define pointer (G.pointer ) | 19 | #define pointer (G.pointer ) |
| 20 | #define base (G.base ) | 20 | #define base (G.base ) |
| 21 | #define stack (G.stack ) | 21 | #define stack (G.stack ) |
| 22 | #define INIT_G() do { \ | ||
| 23 | } while (0) | ||
| 22 | 24 | ||
| 23 | 25 | ||
| 24 | static void push(double a) | 26 | static void push(double a) |
| @@ -194,6 +196,8 @@ static char *get_token(char **buffer) | |||
| 194 | int dc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 196 | int dc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
| 195 | int dc_main(int argc ATTRIBUTE_UNUSED, char **argv) | 197 | int dc_main(int argc ATTRIBUTE_UNUSED, char **argv) |
| 196 | { | 198 | { |
| 199 | INIT_G(); | ||
| 200 | |||
| 197 | argv++; | 201 | argv++; |
| 198 | if (!argv[0]) { | 202 | if (!argv[0]) { |
| 199 | /* take stuff from stdin if no args are given */ | 203 | /* take stuff from stdin if no args are given */ |
diff --git a/miscutils/last.c b/miscutils/last.c index f46d4ca0c..f823a1385 100644 --- a/miscutils/last.c +++ b/miscutils/last.c | |||
| @@ -39,9 +39,8 @@ int last_main(int argc, char **argv ATTRIBUTE_UNUSED) | |||
| 39 | file = xopen(bb_path_wtmp_file, O_RDONLY); | 39 | file = xopen(bb_path_wtmp_file, O_RDONLY); |
| 40 | 40 | ||
| 41 | printf("%-10s %-14s %-18s %-12.12s %s\n", "USER", "TTY", "HOST", "LOGIN", "TIME"); | 41 | printf("%-10s %-14s %-18s %-12.12s %s\n", "USER", "TTY", "HOST", "LOGIN", "TIME"); |
| 42 | while ((n = safe_read(file, (void*)&ut, sizeof(struct utmp))) != 0) { | 42 | while ((n = full_read(file, &ut, sizeof(ut))) > 0) { |
| 43 | 43 | if (n != sizeof(ut)) { | |
| 44 | if (n != sizeof(struct utmp)) { | ||
| 45 | bb_perror_msg_and_die("short read"); | 44 | bb_perror_msg_and_die("short read"); |
| 46 | } | 45 | } |
| 47 | 46 | ||
| @@ -53,16 +52,14 @@ int last_main(int argc, char **argv ATTRIBUTE_UNUSED) | |||
| 53 | else if (strncmp(ut.ut_user, "runlevel", 7) == 0) | 52 | else if (strncmp(ut.ut_user, "runlevel", 7) == 0) |
| 54 | ut.ut_type = RUN_LVL; | 53 | ut.ut_type = RUN_LVL; |
| 55 | } else { | 54 | } else { |
| 56 | if (!ut.ut_name[0] || strcmp(ut.ut_name, "LOGIN") == 0 || | 55 | if (ut.ut_name[0] == '\0' || strcmp(ut.ut_name, "LOGIN") == 0) { |
| 57 | ut.ut_name[0] == 0) | ||
| 58 | { | ||
| 59 | /* Don't bother. This means we can't find how long | 56 | /* Don't bother. This means we can't find how long |
| 60 | * someone was logged in for. Oh well. */ | 57 | * someone was logged in for. Oh well. */ |
| 61 | continue; | 58 | continue; |
| 62 | } | 59 | } |
| 63 | if (ut.ut_type != DEAD_PROCESS && | 60 | if (ut.ut_type != DEAD_PROCESS |
| 64 | ut.ut_name[0] && ut.ut_line[0]) | 61 | && ut.ut_name[0] && ut.ut_line[0] |
| 65 | { | 62 | ) { |
| 66 | ut.ut_type = USER_PROCESS; | 63 | ut.ut_type = USER_PROCESS; |
| 67 | } | 64 | } |
| 68 | if (strcmp(ut.ut_name, "date") == 0) { | 65 | if (strcmp(ut.ut_name, "date") == 0) { |
| @@ -71,7 +68,7 @@ int last_main(int argc, char **argv ATTRIBUTE_UNUSED) | |||
| 71 | } | 68 | } |
| 72 | } | 69 | } |
| 73 | 70 | ||
| 74 | if (ut.ut_type!=USER_PROCESS) { | 71 | if (ut.ut_type != USER_PROCESS) { |
| 75 | switch (ut.ut_type) { | 72 | switch (ut.ut_type) { |
| 76 | case OLD_TIME: | 73 | case OLD_TIME: |
| 77 | case NEW_TIME: | 74 | case NEW_TIME: |
