Date: Wednesday, March 28, 2007 @ 00:32:00 Author: dan Path: /home/cvs-pacman/pacman-lib/lib/libalpm Modified: sync.c (1.112 -> 1.113) Fix --ignore behavior on sysupgrade * --ignore was being ignored (haha) on sysupgrade when a package was listed as being a force upgrade. This adds a prompt to the user in this case asking what to do. Signed-off-by: Dan McGee <dan@archlinux.org> --------+ sync.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) Index: pacman-lib/lib/libalpm/sync.c diff -u pacman-lib/lib/libalpm/sync.c:1.112 pacman-lib/lib/libalpm/sync.c:1.113 --- pacman-lib/lib/libalpm/sync.c:1.112 Tue Mar 20 23:08:19 2007 +++ pacman-lib/lib/libalpm/sync.c Wed Mar 28 00:32:00 2007 @@ -216,14 +216,22 @@ alpm_pkg_get_name(local), alpm_pkg_get_version(local), alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); if(!_alpm_sync_find(trans->packages, alpm_pkg_get_name(spkg))) { - pmpkg_t *dummy = _alpm_pkg_new(alpm_pkg_get_name(local), - alpm_pkg_get_version(local)); - if(dummy == NULL) { + /* If package is in the ignorepkg list, ask before we add it to + * the transaction */ + if(alpm_list_find_str(handle->ignorepkg, alpm_pkg_get_name(local))) { + int resp = 0; + QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, local, NULL, NULL, &resp); + if(!resp) { + continue; + } + } + pmpkg_t *tmp = _alpm_pkg_dup(local); + if(tmp == NULL) { goto error; } - sync = _alpm_sync_new(PM_SYNC_TYPE_UPGRADE, spkg, dummy); + sync = _alpm_sync_new(PM_SYNC_TYPE_UPGRADE, spkg, tmp); if(sync == NULL) { - FREEPKG(dummy); + FREEPKG(tmp); goto error; } trans->packages = alpm_list_add(trans->packages, sync);