aboutsummaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:33:45 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:33:45 +0000
commitd0a071a5281f8ba4b291f0c3beb74bee1f8df6a3 (patch)
tree37e443b155eb66fed37e889828fa60023c84010f /miscutils
parentb44c790e41e281965955a83408f35ea53ecdb3d2 (diff)
downloadbusybox-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.c4
-rw-r--r--miscutils/last.c17
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
24static void push(double a) 26static void push(double a)
@@ -194,6 +196,8 @@ static char *get_token(char **buffer)
194int dc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 196int dc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
195int dc_main(int argc ATTRIBUTE_UNUSED, char **argv) 197int 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: