X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-ui%2Fcurs_lib.c;h=079a34a59cbad0cd4312ef3c33558f42f8b9d3cf;hp=fb65b648c860c2c3e6d95d918764d142449ec53a;hb=c8b8b9539aaf11b48c4c1e5baba434db09722111;hpb=031280cca515ce7949dfef0c6c8265c6112b1e34 diff --git a/lib-ui/curs_lib.c b/lib-ui/curs_lib.c index fb65b64..079a34a 100644 --- a/lib-ui/curs_lib.c +++ b/lib-ui/curs_lib.c @@ -550,6 +550,24 @@ int mutt_addwch (wchar_t wc) return addstr (buf); } +ssize_t mutt_pretty_size(char *s, ssize_t len, ssize_t n) +{ + if (n == 0) + return m_strcpy(s, len, "0K"); + + if (n < 10189) /* 0.1K - 9.9K */ + return snprintf(s, len, "%3.1fK", (n < 103) ? 0.1 : n / 1024.0); + + if (n < 1023949) /* 10K - 999K */ + /* 51 is magic which causes 10189/10240 to be rounded up to 10 */ + return snprintf(s, len, "%ldK", (n + 51) / 1024); + + if (n < 10433332) /* 1.0M - 9.9M */ + return snprintf(s, len, "%3.1fM", n / 1048576.0); + + /* (10433332 + 52428) / 1048576 = 10 */ + return snprintf (s, len, "%ldM", (n + 52428) / 1048576); +} /* * This formats a string, a bit like