From: Fredrik Tolf Date: Wed, 10 Oct 2007 21:56:31 +0000 (+0200) Subject: Slightly cleaned up bytes2si. X-Git-Tag: 1.0~28 X-Git-Url: http://git.dolda2000.com/gitweb/?p=doldaconnect.git;a=commitdiff_plain;h=87d338fbcbc7bc476b81339f80812f9ed10c2484 Slightly cleaned up bytes2si. --- diff --git a/clients/gtk2/dolcon.c b/clients/gtk2/dolcon.c index b209370..9da836b 100644 --- a/clients/gtk2/dolcon.c +++ b/clients/gtk2/dolcon.c @@ -279,23 +279,16 @@ char *bytes2si(long long bytes) { int i; double b; - char *sd; static char ret[64]; + static char pfx[] = {'k', 'M', 'G', 'T'}; b = bytes; - for(i = 0; (b >= 1024) && (i < 4); i++) + for(i = 0; (b >= 1024) && (i < sizeof(pfx)); i++) b /= 1024; if(i == 0) - sd = "B"; - else if(i == 1) - sd = "kiB"; - else if(i == 2) - sd = "MiB"; - else if(i == 3) - sd = "GiB"; + snprintf(ret, 64, "%.1f B", b); else - sd = "TiB"; - snprintf(ret, 64, "%.1f %s", b, sd); + snprintf(ret, 64, "%.1f %ciB", b, pfx[i - 1]); return(ret); }