Improved the looks of the progress meter when the file size is between
authorDaniel Stenberg <daniel@haxx.se>
Sat, 8 Apr 2000 19:28:23 +0000 (19:28 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 8 Apr 2000 19:28:23 +0000 (19:28 +0000)
9999 KB and 100 MB since it then can display the size as XX.X MB instead of
just XX as before.

lib/progress.c

index 1bd5b47..1bb5aec 100644 (file)
@@ -72,15 +72,23 @@ void time2str(char *r, int t)
    but never longer than 5 columns. Add suffix k, M, G when suitable... */
 char *max5data(double bytes, char *max5)
 {
+#define ONE_KILOBYTE 1024
+#define ONE_MEGABYTE (1024*1024)
+
   if(bytes < 100000) {
     sprintf(max5, "%5d", (int)bytes);
     return max5;
   }
-  if(bytes < (9999*1024)) {
-    sprintf(max5, "%4dk", (int)bytes/1024);
+  if(bytes < (9999*ONE_KILOBYTE)) {
+    sprintf(max5, "%4dk", (int)bytes/ONE_KILOBYTE);
+    return max5;
+  }
+  if(bytes < (100*ONE_MEGABYTE)) {
+    /* 'XX.XM' is good as long as we're less than 100 megs */
+    sprintf(max5, "%2.1fM", bytes/ONE_MEGABYTE);
     return max5;
   }
-  sprintf(max5, "%4dM", (int)bytes/(1024*1024));
+  sprintf(max5, "%4dM", (int)bytes/ONE_MEGABYTE);
   return max5;
 }