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

Dave Reisner d at falconindy.com
Mon Mar 21 09:24:35 EDT 2011


On Mon, Mar 21, 2011 at 07:50:37AM -0500, Dan McGee wrote:
> 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
> 

I appreciate the help, but this patch breaks more than it fixes.

http://sprunge.us/DIED

I already had a working fix for this on my working branch.

dave



More information about the pacman-dev mailing list