Replace bunch of wtf evr formatters with headerGetNVR()
authorPanu Matilainen <pmatilai@redhat.com>
Wed, 9 Apr 2008 07:37:34 +0000 (10:37 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Wed, 9 Apr 2008 07:37:34 +0000 (10:37 +0300)
lib/legacy.c
lib/rpmds.c

index 4f63b83..a40f2e2 100644 (file)
@@ -145,10 +145,8 @@ void providePackageNVR(Header h)
 {
     HGE_t hge = (HGE_t)headerGetEntryMinMemory;
     HFD_t hfd = headerFreeData;
-    const char *name, *version, *release;
-    int32_t * epoch;
-    const char *pEVR;
-    char *p;
+    const char *name;
+    char *pEVR;
     rpmsenseFlags pFlags = RPMSENSE_EQUAL;
     const char ** provides = NULL;
     const char ** providesEVR = NULL;
@@ -159,17 +157,9 @@ void providePackageNVR(Header h)
     int bingo = 1;
 
     /* Generate provides for this package name-version-release. */
-    xx = headerNVR(h, &name, &version, &release);
-    if (!(name && version && release))
+    pEVR = headerGetEVR(h, &name);
+    if (!(name && pEVR))
        return;
-    pEVR = p = alloca(21 + strlen(version) + 1 + strlen(release) + 1);
-    *p = '\0';
-    if (hge(h, RPMTAG_EPOCH, NULL, (rpm_data_t *) &epoch, NULL)) {
-       sprintf(p, "%d:", *epoch);
-       while (*p != '\0')
-           p++;
-    }
-    (void) stpcpy( stpcpy( stpcpy(p, version) , "-") , release);
 
     /*
      * Rpm prior to 3.0.3 does not have versioned provides.
@@ -219,6 +209,7 @@ exit:
        xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE,
                &pEVR, 1);
     }
+    free(pEVR);
 }
 
 void legacyRetrofit(Header h)
index dd5b738..d47aa5f 100644 (file)
@@ -254,26 +254,15 @@ char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
 
 rpmds rpmdsThis(Header h, rpmTag tagN, rpmsenseFlags Flags)
 {
-    HGE_t hge = (HGE_t) headerGetEntryMinMemory;
     rpmds ds = NULL;
     const char * Type;
-    const char * n, * v, * r;
-    int32_t * ep;
+    const char * n;
     char *evr;
-    int xx;
 
     if (dsType(tagN, &Type, NULL, NULL))
        goto exit;
 
-    xx = headerNVR(h, &n, &v, &r);
-    ep = NULL;
-    xx = hge(h, RPMTAG_EPOCH, NULL, (rpm_data_t *)&ep, NULL);
-
-    if (ep) {
-       rasprintf(&evr, "%d:%s-%s", *ep, v, r);
-    } else {
-       rasprintf(&evr, "%s-%s", v, r);
-    }
+    evr = headerGetEVR(h, &n);
 
     ds = xcalloc(1, sizeof(*ds));
     ds->h = NULL;
@@ -975,11 +964,8 @@ exit:
 
 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
 {
-    HGE_t hge = (HGE_t)headerGetEntryMinMemory;
-    const char * pkgN, * v, * r;
-    int32_t * epoch;
-    const char * pkgEVR;
-    char * t;
+    const char * pkgN;
+    char * pkgEVR;
     rpmsenseFlags pkgFlags = RPMSENSE_EQUAL;
     rpmds pkg;
     int rc = 1;        /* XXX assume match, names already match here */
@@ -992,24 +978,14 @@ int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
        return rc;
 
     /* Get package information from header */
-    (void) headerNVR(h, &pkgN, &v, &r);
-
-    t = alloca(21 + strlen(v) + 1 + strlen(r) + 1);
-    pkgEVR = t;
-    *t = '\0';
-    if (hge(h, RPMTAG_EPOCH, NULL, (rpm_data_t *) &epoch, NULL)) {
-       sprintf(t, "%d:", *epoch);
-       while (*t != '\0')
-           t++;
-    }
-    (void) stpcpy( stpcpy( stpcpy(t, v) , "-") , r);
-
+    pkgEVR = headerGetEVR(h, &pkgN);
     if ((pkg = rpmdsSingle(RPMTAG_PROVIDENAME, pkgN, pkgEVR, pkgFlags)) != NULL) {
        if (nopromote)
            (void) rpmdsSetNoPromote(pkg, nopromote);
        rc = rpmdsCompare(pkg, req);
        pkg = rpmdsFree(pkg);
     }
+    free(pkgEVR);
 
     return rc;
 }