]> sjero.net Git - wget/blobdiff - src/progress.c
[svn] Remove unnecessary casts.
[wget] / src / progress.c
index 613162fe9496aa87f8f8088f2cabe5aca15042ad..3ebec9a675d5458bcea06f587c3a6ecddc6a61f2 100644 (file)
@@ -200,7 +200,8 @@ struct dot_progress {
   wgint total_length;          /* expected total byte count when the
                                   download finishes */
 
-  int accumulated;
+  int accumulated;             /* number of bytes accumulated after
+                                  the last printed dot */
 
   int rows;                    /* number of rows printed so far */
   int dots;                    /* number of dots printed in this row */
@@ -221,12 +222,12 @@ dot_create (wgint initial, wgint total)
       int dot_bytes = opt.dot_bytes;
       wgint row_bytes = opt.dot_bytes * opt.dots_in_line;
 
-      int remainder = (int) (dp->initial_length % row_bytes);
+      int remainder = dp->initial_length % row_bytes;
       wgint skipped = dp->initial_length - remainder;
 
       if (skipped)
        {
-         int skipped_k = (int) (skipped / 1024); /* skipped amount in K */
+         int skipped_k = skipped / 1024; /* skipped amount in K */
          int skipped_k_len = numdigit (skipped_k);
          if (skipped_k_len < 5)
            skipped_k_len = 5;
@@ -258,7 +259,10 @@ dot_create (wgint initial, wgint total)
 static void
 print_percentage (wgint bytes, wgint expected)
 {
-  int percentage = (int)(100.0 * bytes / expected);
+  /* Round to the floor value in order to gauge how much data *has*
+     been retrieved.  12.8% will round to 12% because the 13% mark has
+     not yet been reached.  100% is only shown when done.  */
+  int percentage = 100.0 * bytes / expected;
   logprintf (LOG_VERBOSE, "%3d%%", percentage);
 }
 
@@ -754,7 +758,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)
@@ -900,7 +904,7 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done)
        strcpy (p, eta_to_human_short ((int) (secs + 0.5)));
       else
        /* For very quick downloads show more exact timing information. */
-       sprintf (p, _("%.*fs"),
+       sprintf (p, "%.*fs",
                 secs < 0.001 ? 0 : /* 0s instead of 0.000s */
                 secs < 0.01 ? 3 :  /* 0.00x */
                 secs < 0.1 ? 2 :   /* 0.0x */
@@ -980,7 +984,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 +997,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;