aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/main.c b/src/main.c
index 5d447d5b8..4d30a2c80 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1733,18 +1733,19 @@ int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
}
struct ProgressData {
- size_t total;
- size_t prev;
- size_t point;
+ int calls;
+ double total;
+ double prev;
+ double point;
int width;
FILE *out; /* where to write everything to */
};
int myprogress (void *clientp,
- size_t dltotal,
- size_t dlnow,
- size_t ultotal,
- size_t ulnow)
+ double dltotal,
+ double dlnow,
+ double ultotal,
+ double ulnow)
{
/* The original progress-bar source code was written for curl by Lars Aas,
and this new edition inherites some of his concepts. */
@@ -1763,6 +1764,8 @@ int myprogress (void *clientp,
bar->point = dlnow + ulnow; /* we've come this far */
+ bar->calls++; /* simply count invokes */
+
if(0 == total) {
int prevblock = bar->prev / 1024;
int thisblock = bar->point / 1024;
@@ -2403,6 +2406,12 @@ operate(struct Configurable *config, int argc, char *argv[])
res = curl_easy_perform(curl);
+ if(progressbar.calls) {
+ /* if the custom progress bar has been displayed, we output a
+ newline here */
+ fputs("\n", progressbar.out);
+ }
+
if(config->writeout) {
ourWriteOut(curl, config->writeout);
}