summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2010-06-20 22:15:05 +0200
committerDan McGee <dan@archlinux.org>2010-06-20 22:19:19 +0200
commit6c00ca8f234cfcbfde7e36b68d85f9dcab5716c8 (patch)
treea7eaee9848e37456c2da93b68da74868af48c601 /lib
parent7fc50d79508f30e74e5ea8d9c801549e7f52229d (diff)
downloadpacman-6c00ca8f234cfcbfde7e36b68d85f9dcab5716c8.tar.gz
pacman-6c00ca8f234cfcbfde7e36b68d85f9dcab5716c8.tar.xz
Handle sync target + ignore properly
Rather than say we can't find the target after saying "No, I guess I don't want to install this", we should make sure the ignored status gets passed all the way through. This fixes FS#19866. Pactest is also included that failed before due to the fact that we normally treat an unfound package as a reason to exit with a non-zero status. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/sync.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 67afd397..68ee8dc7 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -291,7 +291,11 @@ int _alpm_sync_target(alpm_list_t *dbs_sync, char *target)
}
if(!found) {
- RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
+ /* pass through any 'found but ignored' errors */
+ if(pm_errno != PM_ERR_PKG_IGNORED) {
+ pm_errno = PM_ERR_PKG_NOT_FOUND;
+ }
+ return(-1);
}
return(0);