Skip provides along for the ride.
authorjbj <devnull@localhost>
Mon, 20 Sep 1999 13:23:46 +0000 (13:23 +0000)
committerjbj <devnull@localhost>
Mon, 20 Sep 1999 13:23:46 +0000 (13:23 +0000)
CVS patchset: 3308
CVS date: 1999/09/20 13:23:46

lib/depends.c

index 93e5e95..87f61e4 100644 (file)
@@ -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;