From c55ea22c584596897be792fb7a788f04a363b5a8 Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Sat, 10 Feb 2007 09:36:36 +0000 Subject: * 'add' percentages now cap at 100% (see the comment) * downloaded packages now pass ONLY the package name to the callback --- lib/libalpm/add.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'lib/libalpm/add.c') diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index f3cc07a5..cad5ae13 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -496,10 +496,20 @@ int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db) char pathname[PATH_MAX]; struct stat buf; - STRNCPY(pathname, archive_entry_pathname (entry), PATH_MAX); - - if (info->size != 0) - percent = (double)archive_position_uncompressed(archive) / info->size; + STRNCPY(pathname, archive_entry_pathname(entry), PATH_MAX); + + if (info->size != 0) { + /* There's a problem here. These sizes don't match up. info->size is + * the COMPRESSED size, and info->isize is uncompressed. It appears, + * however, that these are the only two sizes available. It appears + * to be close enough, BUT easilly goes over 100%, so we'll stall + * there for now */ + percent = (double)archive_position_uncompressed(archive) / info->size; + if(percent >= 1.0) { + percent = 1.0; + } + } + if (needdisp == 0) { PROGRESS(trans, cb_state, what, (int)(percent * 100), alpm_list_count(trans->packages), (alpm_list_count(trans->packages) - alpm_list_count(targ) +1)); } -- cgit v1.2.3-54-g00ecf