Add headerConvert() "proxy" for performing various conversions on header data
authorPanu Matilainen <pmatilai@redhat.com>
Fri, 10 Oct 2008 12:53:12 +0000 (15:53 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 10 Oct 2008 12:53:12 +0000 (15:53 +0300)
lib/header.h
lib/legacy.c

index 8067952..357accd 100644 (file)
@@ -369,6 +369,19 @@ rpm_color_t headerGetColor(Header h);
  */
 int headerIsSource(Header h);
 
+typedef enum headerConvOps_e {
+    HEADERCONV_EXPANDFILELIST  = 0,
+    HEADERCONV_COMPRESSFILELIST = 1,
+    HEADERCONV_RETROFIT_V3     = 2,
+} headerConvOps;
+
+/** \ingroup header
+ * Convert header to/from (legacy) data presentation
+ * @param h            header
+ * @param op           operation
+ * @return             1 on success, 0 on failure
+ */
+int headerConvert(Header h, headerConvOps op);
 
 #ifdef __cplusplus
 }
index 25f61b6..d2d0f5b 100644 (file)
@@ -239,3 +239,27 @@ void legacyRetrofit(Header h)
        providePackageNVR(h);
     }
 }
+
+int headerConvert(Header h, headerConvOps op)
+{
+    int rc = 1;
+
+    if (h == NULL)
+       return 0;
+
+    switch (op) {
+    case HEADERCONV_EXPANDFILELIST:
+       expandFilelist(h);
+       break;
+    case HEADERCONV_COMPRESSFILELIST:
+       compressFilelist(h);
+       break;
+    case HEADERCONV_RETROFIT_V3:
+       legacyRetrofit(h);
+       break;
+    default:
+       rc = 0;
+       break;
+    }
+    return rc;
+};