int h = (t/3600);
int m = (t-(h*3600))/60;
int s = (t-(h*3600)-(m*60));
- sprintf(r,"%d:%02d:%02d",h,m,s);
+ sprintf(r,"%2d:%02d:%02d",h,m,s);
}
/* The point of this function would be to return a string of the input data,
#if 1
void pgrsDone(struct UrlData *data)
{
- if(!(data->progress.flags & PGRS_HIDE))
+ if(!(data->progress.flags & PGRS_HIDE)) {
+ data->progress.lastshow=0;
+ pgrsUpdate(data); /* the final (forced) update */
fprintf(stderr, "\n");
+ }
}
void pgrsMode(struct UrlData *data, int mode)
{
void pgrsSetDownloadSize(struct UrlData *data, double size)
{
- data->progress.size_dl = size;
- data->progress.flags |= PGRS_DL_SIZE_KNOWN;
+ if(size > 0) {
+ data->progress.size_dl = size;
+ data->progress.flags |= PGRS_DL_SIZE_KNOWN;
+ }
}
void pgrsSetUploadSize(struct UrlData *data, double size)
{
- data->progress.size_ul = size;
- data->progress.flags |= PGRS_UL_SIZE_KNOWN;
+ if(size > 0) {
+ data->progress.size_ul = size;
+ data->progress.flags |= PGRS_UL_SIZE_KNOWN;
+ }
}
/* EXAMPLE OUTPUT to follow:
- % Total % Received % Xferd Average Speed Time Curr.
- Download Upload Total Current Left Speed
-100 12345 100 12345 100 12345 12345 12345 2:47:33 2:00:02 2:00:02 12345
+ % Total % Received % Xferd Average Speed Time Curr.
+ Dload Upload Total Current Left Speed
+100 12345 100 12345 100 12345 12345 12345 12:12:12 12:12:12 12:12:12 12345
*/
else if(!(data->progress.flags & PGRS_HEADERS_OUT)) {
if ( data->progress.mode == CURL_PROGRESS_STATS ) {
fprintf(data->err,
- " %% Total %% Received %% Xferd Average Speed Time Curr.\n"
- " Download Upload Total Current Left Speed\n");
+ " %% Total %% Received %% Xferd Average Speed Time Curr.\n"
+ " Dload Upload Total Current Left Speed\n");
}
data->progress.flags |= PGRS_HEADERS_OUT; /* headers are shown */
}
switch(data->progress.mode) {
case CURL_PROGRESS_STATS:
{
- static long lastshow;
char max5[6][6];
double dlpercen=0;
double ulpercen=0;
double total_estimate;
- if(lastshow == tvlong(now))
+ if(data->progress.lastshow == tvlong(now))
return; /* never update this more than once a second if the end isn't
reached */
- lastshow = now.tv_sec;
+ data->progress.lastshow = now.tv_sec;
/* The exact time spent so far */
timespent = tvdiff (now, data->progress.start);
fprintf(stderr,
- "\r%3d %s %3d %s %3d %s %s %s %s %s %s %s",
+ "\r%3d %s %3d %s %3d %s %s %s %s %s %s %s",
(int)total_percen, /* total % */
max5data(total_expected_transfer, max5[2]), /* total size */
(int)dlpercen, /* rcvd % */