]> sjero.net Git - wget/commitdiff
[svn] Display smaller download rate numbers with more digits of precision.
authorhniksic <devnull@localhost>
Sat, 2 Jul 2005 00:40:54 +0000 (17:40 -0700)
committerhniksic <devnull@localhost>
Sat, 2 Jul 2005 00:40:54 +0000 (17:40 -0700)
src/ChangeLog
src/progress.c
src/retr.c

index 6777851db985e6a06a895072663b9de30ce9914e..afbac539b6bde39402b6467783a10167f98c325c 100644 (file)
@@ -1,3 +1,10 @@
+2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * progress.c (create_image): Ditto.
+
+       * retr.c (retr_rate): Display smaller rate numbers with greater
+       precision.
+
 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * http.c (response_head_terminator): Minor optimization.
index 627fbc23f5c81628a394c8121fb2e2a17b902917..6a65b4d8caa7ef80d041e3de4a39cb427100b009 100644 (file)
@@ -306,7 +306,7 @@ print_row_stats (struct dot_progress *dp, double dltime, bool last)
       bytes_this_row -= dp->initial_length % ROW_BYTES;
     rate = calc_rate (bytes_this_row, dltime - dp->last_timer_value, &units);
     logprintf (LOG_VERBOSE, " %4.*f%c",
-              rate >= 100 ? 0 : rate >= 9.995 ? 1 : 2,
+              rate >= 99.95 ? 0 : rate >= 9.995 ? 1 : 2,
               rate, names[units]);
     dp->last_timer_value = dltime;
   }
@@ -787,13 +787,13 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done)
      "xx% " or "100%"  - percentage               - 4 chars
      "[]"              - progress bar decorations - 2 chars
      " nnn,nnn,nnn"    - downloaded bytes         - 12 chars or very rarely more
-     " 1012.56K/s"     - dl rate                  - 11 chars
+     " 12.5K/s"        - download rate             - 8 chars
      "  eta 36m 51s"   - ETA                      - 13 chars
 
      "=====>..."       - progress bar             - the rest
   */
   int dlbytes_size = 1 + MAX (size_grouped_len, 11);
-  int progress_size = bp->width - (4 + 2 + dlbytes_size + 11 + 13);
+  int progress_size = bp->width - (4 + 2 + dlbytes_size + 8 + 13);
 
   if (progress_size < 5)
     progress_size = 0;
@@ -878,7 +878,7 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done)
   sprintf (p, " %-11s", size_grouped);
   move_to_end (p);
 
-  /* " 1012.45K/s" */
+  /* " 12.52K/s" */
   if (hist->total_time && hist->total_bytes)
     {
       static const char *short_units[] = { "B/s", "K/s", "M/s", "G/s" };
@@ -888,11 +888,12 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done)
       wgint dlquant = hist->total_bytes + bp->recent_bytes;
       double dltime = hist->total_time + (dl_total_time - bp->recent_start);
       double dlspeed = calc_rate (dlquant, dltime, &units);
-      sprintf (p, " %7.2f%s", dlspeed, short_units[units]);
+      sprintf (p, " %4.*f%s", dlspeed >= 99.95 ? 0 : dlspeed >= 9.995 ? 1 : 2,
+              dlspeed, short_units[units]);
       move_to_end (p);
     }
   else
-    APPEND_LITERAL ("   --.--K/s");
+    APPEND_LITERAL (" --.-K/s");
 
   if (!done)
     {
index 918fb5de6df611a4b328d501925a2fa8f11ac2fe..60106efaa1b11717bced71301d3a81aba76579ef 100644 (file)
@@ -521,10 +521,14 @@ retr_rate (wgint bytes, double msecs)
 {
   static char res[20];
   static const char *rate_names[] = {"B/s", "KB/s", "MB/s", "GB/s" };
-  int units = 0;
+  int units;
 
   double dlrate = calc_rate (bytes, msecs, &units);
-  sprintf (res, "%.2f %s", dlrate, rate_names[units]);
+  /* Use more digits for smaller numbers (regardless of unit used),
+     e.g. "1022", "247", "12.5", "2.38".  */
+  sprintf (res, "%.*f %s",
+          dlrate >= 99.95 ? 0 : dlrate >= 9.995 ? 1 : 2,
+          dlrate, rate_names[units]);
 
   return res;
 }