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);
}
/* "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)
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 */
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)
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;