]> sjero.net Git - wget/commitdiff
[svn] Document print_percentage.
authorhniksic <devnull@localhost>
Tue, 28 Jun 2005 09:09:31 +0000 (02:09 -0700)
committerhniksic <devnull@localhost>
Tue, 28 Jun 2005 09:09:31 +0000 (02:09 -0700)
src/ChangeLog
src/progress.c

index f00261a27384bf3ae1b89d0e9fe149e6f4e94524..1bdca43cd7eeec20a84826e5ab39563b78e2ec39 100644 (file)
@@ -1,3 +1,7 @@
+2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * progress.c (print_percentage): Round the percentage value.
+
 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * ftp.c (getftp): Delete trailing newlines from LIST output so
index a9f2963517b35f1c8d303f0019768eed38122c74..6f24cd290e027094504b7479910e109141256f33 100644 (file)
@@ -258,7 +258,13 @@ dot_create (wgint initial, wgint total)
 static void
 print_percentage (wgint bytes, wgint expected)
 {
-  int percentage = (int)(100.0 * bytes / expected);
+  /* This intentionally rounds to the floor value because it is a
+     measure of how much data *has* been retrieved.  Therefore 12.8%
+     rounds to 12% because the 13% mark has not yet been reached.
+     Likewise, 100% is only shown when all data has been retrieved,
+     not before.  */
+
+  int percentage = 100.0 * bytes / expected;
   logprintf (LOG_VERBOSE, "%3d%%", percentage);
 }
 
@@ -754,7 +760,7 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done)
   /* "xx% " */
   if (bp->total_length > 0)
     {
-      int percentage = (int)(100.0 * size / bp->total_length);
+      int percentage = 100.0 * size / bp->total_length;
       assert (percentage <= 100);
 
       if (percentage < 100)
@@ -980,7 +986,12 @@ progress_handle_sigwinch (int sig)
    and hours are shown.  This ensures brevity while still displaying
    as much as possible.
 
-   It never occupies more than 7 characters of screen space.  */
+   If SEP is false, the separator between minutes and seconds (and
+   hours and minutes, etc.) is not included, shortening the display by
+   one additional character.  This is used for dot progress.
+
+   The display never occupies more than 7 characters of screen
+   space.  */
 
 static const char *
 eta_to_human_short (int secs)
@@ -988,9 +999,9 @@ eta_to_human_short (int secs)
   static char buf[10];         /* 8 should be enough, but just in case */
   static int last = -1;
 
-  /* Trivial optimization.  This function can be called every 200
-     msecs (see bar_update) for fast downloads, but ETA will only
-     change once per 900 msecs (see create_image).  */
+  /* Trivial optimization.  create_image can call us every 200 msecs
+     (see bar_update) for fast downloads, but ETA will only change
+     once per 900 msecs.  */
   if (secs == last)
     return buf;
   last = secs;