From aa8b92fedffeed174157fee39090dcb78611ac5a Mon Sep 17 00:00:00 2001 From: jbj Date: Mon, 20 Sep 1999 13:23:46 +0000 Subject: [PATCH] Skip provides along for the ride. CVS patchset: 3308 CVS date: 1999/09/20 13:23:46 --- lib/depends.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/depends.c b/lib/depends.c index 93e5e95..87f61e4 100644 --- a/lib/depends.c +++ b/lib/depends.c @@ -335,6 +335,7 @@ static int rangesOverlap(const char *AName, const char *AEVR, int AFlags, parseEVR(bEVR, &bE, &bV, &bR); /* Compare {A,B} [epoch:]version[-release] */ + sense = 0; if (aE && *aE && bE && *bE) sense = rpmvercmp(aE, bE); else if (aE && *aE) @@ -692,8 +693,14 @@ static /*@exposed@*/ struct availablePackage * alSatisfiesDepend(struct availabl } break; case IET_PROVIDES: for (i = 0; i < p->providesCount; i++) { - const char *proEVR = (p->providesEVR ? p->providesEVR[i] : NULL); - int proFlags = (p->provideFlags ? p->provideFlags[i] : 0); + const char *proEVR; + int proFlags; + + /* Filter out provides that came along for the ride. */ + if (strcmp(p->provides[i], keyName)) continue; + + proEVR = (p->providesEVR ? p->providesEVR[i] : NULL); + proFlags = (p->provideFlags ? p->provideFlags[i] : 0); rc = rangesOverlap(p->provides[i], proEVR, proFlags, keyName, keyEVR, keyFlags); if (rc) break; -- 2.7.4