diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-13 03:25:09 +0400 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-13 03:25:09 +0400 |
commit | 0bf44d00a42dec70514c2e51926f4ca37b4b2367 (patch) | |
tree | be01fbf44da8040c5ef271e0d0bba147ce0c525e /coreutils | |
parent | 76ace254e171ee9ca7a13f36335ccad9cc6ae6e1 (diff) |
libbb/human_readable.c: shrink; and reduce bss usage
also, move smart_ulltoaN there and comment usage locations
function old new delta
static.unit_chars 7 9 +2
utoa_to_buf 110 108 -2
make_human_readable_str 262 258 -4
fallbackSort 1723 1719 -4
static.fmt 97 92 -5
static.fmt_tenths 10 - -10
static.str 21 4 -17
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/5 up/down: 2/-42) Total: -40 bytes
text data bss dec hex filename
820981 453 6932 828366 ca3ce busybox_old
820968 453 6916 828337 ca3b1 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/df.c | 23 | ||||
-rw-r--r-- | coreutils/du.c | 7 | ||||
-rw-r--r-- | coreutils/ls.c | 4 |
3 files changed, 24 insertions, 10 deletions
diff --git a/coreutils/df.c b/coreutils/df.c index c37b18893..624ad94ba 100644 --- a/coreutils/df.c +++ b/coreutils/df.c @@ -92,7 +92,10 @@ int df_main(int argc, char **argv) if (disp_units_hdr == NULL) { #if ENABLE_FEATURE_HUMAN_READABLE disp_units_hdr = xasprintf("%s-blocks", - make_human_readable_str(df_disp_hr, 0, !!(opt & OPT_POSIX))); + /* print df_disp_hr, show no fractionals, + * use suffixes if OPT_POSIX is set in opt */ + make_human_readable_str(df_disp_hr, 0, !!(opt & OPT_POSIX)) + ); #else disp_units_hdr = xasprintf("%lu-blocks", df_disp_hr); #endif @@ -189,21 +192,27 @@ int df_main(int argc, char **argv) #if ENABLE_FEATURE_HUMAN_READABLE printf(" %9s ", + /* f_blocks x f_bsize / df_disp_hr, show one fractional, + * use suffixes if df_disp_hr == 0 */ make_human_readable_str(s.f_blocks, s.f_bsize, df_disp_hr)); printf(" %9s " + 1, + /* EXPR x f_bsize / df_disp_hr, show one fractional, + * use suffixes if df_disp_hr == 0 */ make_human_readable_str((s.f_blocks - s.f_bfree), s.f_bsize, df_disp_hr)); printf("%9s %3u%% %s\n", - make_human_readable_str(s.f_bavail, s.f_bsize, df_disp_hr), - blocks_percent_used, mount_point); + /* f_bavail x f_bsize / df_disp_hr, show one fractional, + * use suffixes if df_disp_hr == 0 */ + make_human_readable_str(s.f_bavail, s.f_bsize, df_disp_hr), + blocks_percent_used, mount_point); #else printf(" %9lu %9lu %9lu %3u%% %s\n", - kscale(s.f_blocks, s.f_bsize), - kscale(s.f_blocks - s.f_bfree, s.f_bsize), - kscale(s.f_bavail, s.f_bsize), - blocks_percent_used, mount_point); + kscale(s.f_blocks, s.f_bsize), + kscale(s.f_blocks - s.f_bfree, s.f_bsize), + kscale(s.f_bavail, s.f_bsize), + blocks_percent_used, mount_point); #endif } } diff --git a/coreutils/du.c b/coreutils/du.c index ec283f85e..730d6d162 100644 --- a/coreutils/du.c +++ b/coreutils/du.c @@ -58,14 +58,17 @@ static void print(unsigned long size, const char *filename) { /* TODO - May not want to defer error checking here. */ #if ENABLE_FEATURE_HUMAN_READABLE - printf("%s\t%s\n", make_human_readable_str(size, 512, G.disp_hr), + printf("%s\t%s\n", + /* size x 512 / G.disp_hr, show one fractional, + * use suffixes if G.disp_hr == 0 */ + make_human_readable_str(size, 512, G.disp_hr), filename); #else if (G.disp_k) { size++; size >>= 1; } - printf("%ld\t%s\n", size, filename); + printf("%lu\t%s\n", size, filename); #endif } diff --git a/coreutils/ls.c b/coreutils/ls.c index a067aa36c..38cabcab6 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c @@ -829,7 +829,9 @@ static NOINLINE unsigned list_single(const struct dnode *dn) } else { if (all_fmt & LS_DISP_HR) { column += printf("%9s ", - make_human_readable_str(dn->dstat.st_size, 1, 0)); + /* print st_size, show one fractional, use suffixes */ + make_human_readable_str(dn->dstat.st_size, 1, 0) + ); } else { column += printf("%9"OFF_FMT"u ", (off_t) dn->dstat.st_size); } |