aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-10-13 01:25:09 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-10-13 01:25:09 +0200
commit0bf44d00a42dec70514c2e51926f4ca37b4b2367 (patch)
treebe01fbf44da8040c5ef271e0d0bba147ce0c525e /coreutils
parent76ace254e171ee9ca7a13f36335ccad9cc6ae6e1 (diff)
downloadbusybox-0bf44d00a42dec70514c2e51926f4ca37b4b2367.tar.gz
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.c23
-rw-r--r--coreutils/du.c7
-rw-r--r--coreutils/ls.c4
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);
}