From 4d28a59fc2b21fd7cbf54e48e9c28018b991c987 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 17 Apr 2012 00:45:20 +0200 Subject: [PATCH] -# progress meter: avoid superfluous updates and duplicate lines By comparing if a different "progress point" is reached or not since the previous update, the progress function callback for this now avoids many superfluous screen updates. This has the nice side-effect that it fixes a problem that causes a second progress meter line. The second line output happened because when we use the -# progress meter, we force a newline output after the transfer in the main loop in curl, but when libcurl calls the progress callback from curl_easy_cleanup() it would then output the progress display again. Possibly the naive newline output is wrong but this optimization was suitable anyway... Reported by: Daniel Theron Bug: http://curl.haxx.se/bug/view.cgi?id=3517418 --- src/tool_cb_prg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c index 809b4d487..7a701b692 100644 --- a/src/tool_cb_prg.c +++ b/src/tool_cb_prg.c @@ -76,7 +76,7 @@ int tool_progress_cb(void *clientp, prevblock++; } } - else { + else if(point != bar->prev) { frac = (double)point / (double)total; percent = frac * 100.0f; barwidth = bar->width - 7;