summaryrefslogtreecommitdiff
path: root/dselect/pkgdepcon.cc
diff options
context:
space:
mode:
authorIan Jackson <ian@davenant.greenend.org.uk>2008-03-30 09:47:15 +0300
committerGuillem Jover <guillem@debian.org>2008-03-30 12:46:43 +0300
commit10440009b68f59eeed4cb1b56547e3cf356aa540 (patch)
treedc57512b59df90330232991cac9a2a398b87a9a0 /dselect/pkgdepcon.cc
parent043da257abd59e61caeb60c8a3616d0d06118925 (diff)
downloaddpkg-10440009b68f59eeed4cb1b56547e3cf356aa540.tar.gz
Implement triggers support
Closes: #17243, #68981, #215374, #217622, #248693, #308285
Diffstat (limited to 'dselect/pkgdepcon.cc')
-rw-r--r--dselect/pkgdepcon.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/dselect/pkgdepcon.cc b/dselect/pkgdepcon.cc
index b0d7a3340..eea4f836c 100644
--- a/dselect/pkgdepcon.cc
+++ b/dselect/pkgdepcon.cc
@@ -39,7 +39,9 @@ int packagelist::useavailable(pkginfo *pkg) {
if (pkg->clientdata &&
pkg->clientdata->selected == pkginfo::want_install &&
informative(pkg,&pkg->available) &&
- (pkg->status != pkginfo::stat_installed ||
+ (!(pkg->status == pkginfo::stat_installed ||
+ pkg->status == pkginfo::stat_triggersawaited ||
+ pkg->status == pkginfo::stat_triggerspending) ||
versioncompare(&pkg->available.version,&pkg->installed.version) > 0))
return 1;
else
@@ -411,7 +413,9 @@ int packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade
if (useavailable(provider->up->up))
return 1;
if (fixbyupgrade && !*fixbyupgrade &&
- (provider->up->up->status != pkginfo::stat_installed ||
+ (!(provider->up->up->status == pkginfo::stat_installed ||
+ provider->up->up->status == pkginfo::stat_triggerspending ||
+ provider->up->up->status == pkginfo::stat_triggersawaited) ||
versioncompare(&provider->up->up->available.version,
&provider->up->up->installed.version) > 1))
*fixbyupgrade= provider->up->up->clientdata;