aboutsummaryrefslogtreecommitdiff
path: root/miscutils/nmeter.c
diff options
context:
space:
mode:
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-11-05 00:44:39 +0000
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-11-05 00:44:39 +0000
commit04353387ec2a1ee4a28e44be9062c2a6967f397d (patch)
tree95ef467494c3178ffb308b95f8743886d9c9a5ae /miscutils/nmeter.c
parent48b1ebd12ec4ef182b4ea423f2309705ae141e8e (diff)
downloadbusybox-w32-04353387ec2a1ee4a28e44be9062c2a6967f397d.tar.gz
busybox-w32-04353387ec2a1ee4a28e44be9062c2a6967f397d.tar.bz2
busybox-w32-04353387ec2a1ee4a28e44be9062c2a6967f397d.zip
smart_ulltoa5: make available in libbb
git-svn-id: svn://busybox.net/trunk/busybox@16510 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to '')
-rw-r--r--miscutils/nmeter.c36
1 files changed, 1 insertions, 35 deletions
diff --git a/miscutils/nmeter.c b/miscutils/nmeter.c
index d71bd6add..326d7b85f 100644
--- a/miscutils/nmeter.c
+++ b/miscutils/nmeter.c
@@ -214,42 +214,8 @@ static int rdval_diskstats(const char* p, ullong *vec)
214 214
215static void scale(ullong ul) 215static void scale(ullong ul)
216{ 216{
217 char *fmt;
218 char buf[5]; 217 char buf[5];
219 char c; 218 smart_ulltoa5(ul, buf);
220 unsigned v,idx = 0;
221 ul *= 10;
222 if (ul > 9999*10) { // do not scale if 9999 or less
223 while (ul >= 10000) {
224 ul /= 1024;
225 idx++;
226 }
227 }
228 v = ul; // ullong divisions are expensive, avoid them
229
230 fmt = " 123456789";
231 if (!idx) { // 9999 or less: use 1234 format
232 c = buf[0] = " 123456789"[v/10000];
233 if (c!=' ') fmt = "0123456789";
234 c = buf[1] = fmt[v/1000%10];
235 if (c!=' ') fmt = "0123456789";
236 buf[2] = fmt[v/100%10];
237 buf[3] = "0123456789"[v/10%10];
238 } else {
239 if (v>=10*10) { // scaled value is >=10: use 123M format
240 c = buf[0] = " 123456789"[v/1000];
241 if (c!=' ') fmt = "0123456789";
242 buf[1] = fmt[v/100%10];
243 buf[2] = "0123456789"[v/10%10];
244 } else { // scaled value is <10: use 1.2M format
245 buf[0] = "0123456789"[v/10];
246 buf[1] = '.';
247 buf[2] = "0123456789"[v%10];
248 }
249 // see http://en.wikipedia.org/wiki/Tera
250 buf[3] = " kMGTPEZY"[idx];
251 }
252 buf[4] = '\0';
253 put(buf); 219 put(buf);
254} 220}
255 221