+2001-02-11 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * ftp.c (ftp_loop_internal): Disable padding.
+ (getftp): Ditto.
+
+ * http.c (http_loop): Disable padding.
+
+ * retr.c (show_progress): Use it to enable padding.
+
+ * retr.c (rate): Optional parameter PAD for padding the rate.
+
+2001-02-10 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * retr.c (show_progress): Make sure that the last output line
+ includes progress.
+
+2001-02-10 Jonas Jensen <bones@huleboer.dk>
+
+ * retr.c (show_progress): Print the download rate along with the
+ percentages.
+
2001-02-10 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>
* ftp.h: Rename enums `command' to `wget_ftp_command' and
2001-02-10 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>
* ftp.h: Rename enums `command' to `wget_ftp_command' and
res = get_contents (dtsock, fp, len, restval, expected_bytes, &con->rbuf, 0);
con->dltime = elapsed_time ();
tms = time_str (NULL);
res = get_contents (dtsock, fp, len, restval, expected_bytes, &con->rbuf, 0);
con->dltime = elapsed_time ();
tms = time_str (NULL);
- tmrate = rate (*len - restval, con->dltime);
+ tmrate = rate (*len - restval, con->dltime, 0);
/* Close data connection socket. */
closeport (dtsock);
/* Close the local file. */
/* Close data connection socket. */
closeport (dtsock);
/* Close the local file. */
err = getftp (u, &len, restval, con);
/* Time? */
tms = time_str (NULL);
err = getftp (u, &len, restval, con);
/* Time? */
tms = time_str (NULL);
- tmrate = rate (len - restval, con->dltime);
+ tmrate = rate (len - restval, con->dltime, 0);
if (!rbuf_initialized_p (&con->rbuf))
con->st &= ~DONE_CWD;
if (!rbuf_initialized_p (&con->rbuf))
con->st &= ~DONE_CWD;
strings within it will no longer be used. */
FREEHSTAT (hstat);
strings within it will no longer be used. */
FREEHSTAT (hstat);
- tmrate = rate (hstat.len - hstat.restval, hstat.dltime);
+ tmrate = rate (hstat.len - hstat.restval, hstat.dltime, 0);
if (hstat.len == hstat.contlen)
{
if (hstat.len == hstat.contlen)
{
- Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
This file is part of Wget.
This file is part of Wget.
print_percentage (long bytes, long expected)
{
int percentage = (int)(100.0 * bytes / expected);
print_percentage (long bytes, long expected)
{
int percentage = (int)(100.0 * bytes / expected);
- logprintf (LOG_VERBOSE, " [%3d%%]", percentage);
+ logprintf (LOG_VERBOSE, "%3d%%", percentage);
}
/* Show the dotted progress report of file loading. Called with
}
/* Show the dotted progress report of file loading. Called with
show_progress (long res, long expected, enum spflags flags)
{
static long line_bytes;
show_progress (long res, long expected, enum spflags flags)
{
static long line_bytes;
+ static long offs, initial_skip;
+ static long last_timer, time_offset;
int any_output = 0;
if (flags == SP_FINISH)
int any_output = 0;
if (flags == SP_FINISH)
int dot = ndot;
char *tmpstr = (char *)alloca (2 * opt.dots_in_line + 1);
char *tmpp = tmpstr;
int dot = ndot;
char *tmpstr = (char *)alloca (2 * opt.dots_in_line + 1);
char *tmpp = tmpstr;
+ time_offset = elapsed_time () - last_timer;
for (; dot < opt.dots_in_line; dot++)
{
if (!(dot % opt.dot_spacing))
for (; dot < opt.dots_in_line; dot++)
{
if (!(dot % opt.dot_spacing))
logputs (LOG_VERBOSE, tmpstr);
print_percentage (nrow * line_bytes + ndot * opt.dot_bytes + offs,
expected);
logputs (LOG_VERBOSE, tmpstr);
print_percentage (nrow * line_bytes + ndot * opt.dot_bytes + offs,
expected);
+ logprintf (LOG_VERBOSE, " @%s",
+ rate (ndot * opt.dot_bytes + offs - initial_skip,
+ time_offset, 1));
}
logputs (LOG_VERBOSE, "\n\n");
return 0;
}
logputs (LOG_VERBOSE, "\n\n");
return 0;
offs = 0L;
ndot = nrow = 0;
line_bytes = (long)opt.dots_in_line * opt.dot_bytes;
offs = 0L;
ndot = nrow = 0;
line_bytes = (long)opt.dots_in_line * opt.dot_bytes;
+ last_timer = elapsed_time ();
+ time_offset = 0;
+ initial_skip = res;
if (res)
{
if (res >= line_bytes)
if (res)
{
if (res >= line_bytes)
- logprintf (LOG_VERBOSE, "\n%5ldK ->", nrow * line_bytes / 1024);
+ logprintf (LOG_VERBOSE, "\n%5ldK", nrow * line_bytes / 1024);
}
/* Offset gets incremented by current value. */
offs += res;
}
/* Offset gets incremented by current value. */
offs += res;
++ndot;
if (ndot == opt.dots_in_line)
{
++ndot;
if (ndot == opt.dots_in_line)
{
+ time_offset = elapsed_time () - last_timer;
+ last_timer += time_offset;
+
ndot = 0;
++nrow;
if (expected)
ndot = 0;
++nrow;
if (expected)
- print_percentage (nrow * line_bytes, expected);
- logprintf (LOG_VERBOSE, "\n%5ldK ->", nrow * line_bytes / 1024);
+ {
+ print_percentage (nrow * line_bytes, expected);
+ logprintf (LOG_VERBOSE, " @%s",
+ rate (line_bytes - initial_skip, time_offset, 1));
+ }
+ initial_skip = 0;
+ logprintf (LOG_VERBOSE, "\n%5ldK", nrow * line_bytes / 1024);
}
}
/* Reenable flushing. */
}
}
/* Reenable flushing. */
/* Print out the appropriate download rate. Appropriate means that if
rate is > 1024 bytes per second, kilobytes are used, and if rate >
/* Print out the appropriate download rate. Appropriate means that if
rate is > 1024 bytes per second, kilobytes are used, and if rate >
- 1024 * 1024 bps, megabytes are used. */
+ 1024 * 1024 bps, megabytes are used.
+
+ If PAD is non-zero, strings will be padded to the width of 7
+ characters (xxxx.xx). */
-rate (long bytes, long msecs)
+rate (long bytes, long msecs, int pad)
{
static char res[15];
double dlrate;
{
static char res[15];
double dlrate;
if (!msecs)
++msecs;
dlrate = (double)1000 * bytes / msecs;
if (!msecs)
++msecs;
dlrate = (double)1000 * bytes / msecs;
- /* #### Should these strings be translatable? */
- sprintf (res, "%.2f B/s", dlrate);
+ sprintf (res, pad ? "%7.2f B/s" : "%.2f B/s", dlrate);
else if (dlrate < 1024.0 * 1024.0)
else if (dlrate < 1024.0 * 1024.0)
- sprintf (res, "%.2f KB/s", dlrate / 1024.0);
+ sprintf (res, pad ? "%7.2f KB/s" : "%.2f KB/s", dlrate / 1024.0);
- sprintf (res, "%.2f MB/s", dlrate / (1024.0 * 1024.0));
+ sprintf (res, pad ? "%7.2f MB/s" : "%.2f MB/s", dlrate / (1024.0 * 1024.0));
void reset_timer PARAMS ((void));
long elapsed_time PARAMS ((void));
void reset_timer PARAMS ((void));
long elapsed_time PARAMS ((void));
-char *rate PARAMS ((long, long));
+char *rate PARAMS ((long, long, int));
void printwhat PARAMS ((int, int));
void printwhat PARAMS ((int, int));