On 2/1/21 2:57 am, morganamilo via pacman-dev wrote:
> ---
>  lib/libalpm/alpm.h    | 3 ++-
>  lib/libalpm/sync.c    | 6 +++++-
>  src/pacman/callback.c | 3 ++-
>  src/pacman/callback.h | 2 +-
>  4 files changed, 10 insertions(+), 4 deletions(-)
> 

ok - changed the commit message slightly, as it confused me!

libalpm: pass the number of packages being downloaded in totaldlcb

> diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
> index 72c4fb24..92586043 100644
> --- a/lib/libalpm/alpm.h
> +++ b/lib/libalpm/alpm.h
> @@ -1189,9 +1189,10 @@ typedef void (*alpm_cb_download)(const char *filename,
>  
>  
>  /** Total Download callback.
> + * @param howmany the number of packages that will be downloaded during 
> \link alpm_trans_commit \endlink.
>   * @param total amount that will be downloaded during \link 
> alpm_trans_commit \endlink.
>   */
> -typedef void (*alpm_cb_totaldl)(off_t total);
> +typedef void (*alpm_cb_totaldl)(size_t howmany, off_t total);
>  
>  /** A callback for downloading files
>   * @param url the URL of the file to be downloaded
> diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
> index e25e56d4..3919d266 100644
> --- a/lib/libalpm/sync.c
> +++ b/lib/libalpm/sync.c
> @@ -760,12 +760,16 @@ static int download_files(alpm_handle_t *handle)
>        * frontend to compute incremental progress. */
>       if(handle->totaldlcb) {
>               off_t total_size = (off_t)0;
> +             size_t howmany = 0;
>               /* sum up the download size for each package and store total */
>               for(i = handle->trans->add; i; i = i->next) {
>                       alpm_pkg_t *spkg = i->data;
>                       total_size += spkg->download_size;
> +                     if(spkg->download_size > 0) {
> +                             howmany++;
> +                     }
>               }
> -             handle->totaldlcb(total_size);
> +             handle->totaldlcb(howmany, total_size);
>       }
>  
>       ret = find_dl_candidates(handle, &files);
> diff --git a/src/pacman/callback.c b/src/pacman/callback.c
> index 6ed7557a..f11382a0 100644
> --- a/src/pacman/callback.c
> +++ b/src/pacman/callback.c
> @@ -694,8 +694,9 @@ void cb_progress(alpm_progress_t event, const char 
> *pkgname, int percent,
>  }
>  
>  /* callback to handle receipt of total download value */
> -void cb_dl_total(off_t total)
> +void cb_dl_total(size_t howmany, off_t total)
>  {
> +     (void)howmany;
>       list_total = total;
>  }
>  
> diff --git a/src/pacman/callback.h b/src/pacman/callback.h
> index 09d544a6..508c96b3 100644
> --- a/src/pacman/callback.h
> +++ b/src/pacman/callback.h
> @@ -36,7 +36,7 @@ void cb_progress(alpm_progress_t event, const char 
> *pkgname, int percent,
>                     size_t howmany, size_t remain);
>  
>  /* callback to handle receipt of total download value */
> -void cb_dl_total(off_t total);
> +void cb_dl_total(size_t howmany, off_t total);
>  /* callback to handle display of download progress */
>  void cb_download(const char *filename, alpm_download_event_type_t event,
>               void *data);
> 

Reply via email to