[pacman-dev] [PATCH] Don't initialize progress to zero before calling curl_easy_perform().

Dan McGee dpmcgee at gmail.com
Mon Mar 21 08:50:37 EDT 2011


On Mon, Mar 21, 2011 at 5:53 AM, Lukas Fleischer
<archlinux at cryptocrack.de> wrote:
> Drawing progress bars before calling curl_easy_perform() is needless as
> the curl progress callback is called with zero progress before actually
> downloading the file anyways. Fixes display of "0%" progress bars when
> sync'ing package databases that are already up to date.

I'll take this for now, but there is still some hackjob action going
on in here- comparing doubles via equality to ints, etc. I figure
these will get worked out in time though.

> Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
> ---
>  lib/libalpm/dload.c |    7 +++----
>  1 files changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
> index ebfd042..a14d1d1 100644
> --- a/lib/libalpm/dload.c
> +++ b/lib/libalpm/dload.c
> @@ -212,10 +212,9 @@ static int curl_download_internal(const char *url, const char *localpath,
>        sigaction(SIGINT, NULL, &sig_int[OLD]);
>        sigaction(SIGINT, &sig_int[NEW], NULL);
>
> -       /* Progress 0 - initialize */
> -       if(handle->dlcb) {
> -               handle->dlcb(filename, 0, 1);
> -       }
> +       /* set initial value of prevprogress to -1 which causes curl_progress() to
> +        * initialize the progress bar with 0% once. */
> +       prevprogress = -1;
>
>        /* perform transfer */
>        handle->curlerr = curl_easy_perform(handle->curl);
> --
> 1.7.4.1


More information about the pacman-dev mailing list