Move the legacy compatibility goo into legacy.c
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 22 Dec 2009 10:30:45 +0000 (12:30 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 22 Dec 2009 10:30:45 +0000 (12:30 +0200)
- no functional changes
- headerGetRawEntry() hasn't had a public prototype since rpm 4.0 days
  but there are some 3rd party users still (sigh), leave it alone as
  exposing the proto now would only cause *more* trouble to the external
  users

lib/header_internal.c
lib/header_internal.h
lib/legacy.c

index 382d898..44578d7 100644 (file)
@@ -17,145 +17,3 @@ uint64_t htonll( uint64_t n ) {
     return n;
 }
 
-/*
- * Backwards compatibility wrappers for legacy interfaces.
- * Remove these some day...
- */
-#define _RPM_4_4_COMPAT
-#include <rpm/rpmlegacy.h>
-
-/* dumb macro to avoid 50 copies of this code while converting... */
-#define TDWRAP() \
-    if (type) \
-       *type = td.type; \
-    if (p) \
-       *p = td.data; \
-    else \
-       rpmtdFreeData(&td); \
-    if (c) \
-       *c = td.count
-
-int headerRemoveEntry(Header h, rpmTag tag)
-{
-    return headerDel(h, tag);
-}
-
-static void *_headerFreeData(rpm_data_t data, rpmTagType type)
-{
-    if (data) {
-       if (type == RPM_FORCEFREE_TYPE ||
-           type == RPM_STRING_ARRAY_TYPE ||
-           type == RPM_I18NSTRING_TYPE ||
-           type == RPM_BIN_TYPE)
-               free(data);
-    }
-    return NULL;
-}
-
-void * headerFreeData(rpm_data_t data, rpmTagType type)
-{
-    return _headerFreeData(data, type);
-}
-
-void * headerFreeTag(Header h, rpm_data_t data, rpmTagType type)
-{
-    return _headerFreeData(data, type);
-}
-
-static int headerGetWrap(Header h, rpmTag tag,
-               rpmTagType * type,
-               rpm_data_t * p,
-               rpm_count_t * c,
-               headerGetFlags flags)
-{
-    struct rpmtd_s td;
-    int rc;
-
-    rc = headerGet(h, tag, &td, flags);
-    TDWRAP();
-    return rc;
-}
-
-int headerGetEntry(Header h, rpmTag tag,
-                       rpmTagType * type,
-                       rpm_data_t * p,
-                       rpm_count_t * c)
-{
-    return headerGetWrap(h, tag, type, p, c, HEADERGET_DEFAULT);
-}
-
-int headerGetEntryMinMemory(Header h, rpmTag tag,
-                       rpmTagType * type,
-                       rpm_data_t * p,
-                       rpm_count_t * c)
-{
-    return headerGetWrap(h, tag, type, (rpm_data_t) p, c, HEADERGET_MINMEM);
-}
-
-int headerGetRawEntry(Header h, rpmTag tag, rpmTagType * type, rpm_data_t * p,
-               rpm_count_t * c)
-{
-    if (p == NULL) 
-       return headerIsEntry(h, tag);
-
-    return headerGetWrap(h, tag, type, p, c, HEADERGET_RAW);
-}
-
-int headerNextIterator(HeaderIterator hi,
-               rpmTag * tag,
-               rpmTagType * type,
-               rpm_data_t * p,
-               rpm_count_t * c)
-{
-    struct rpmtd_s td;
-    int rc;
-
-    rc = headerNext(hi, &td);
-    if (tag)
-       *tag = td.tag;
-    TDWRAP();
-    return rc;
-}
-
-int headerModifyEntry(Header h, rpmTag tag, rpmTagType type,
-                       rpm_constdata_t p, rpm_count_t c)
-{
-    struct rpmtd_s td = {
-       .tag = tag,
-       .type = type,
-       .data = (void *) p,
-       .count = c,
-    };
-    return headerMod(h, &td);
-}
-
-static int headerPutWrap(Header h, rpmTag tag, rpmTagType type,
-               rpm_constdata_t p, rpm_count_t c, headerPutFlags flags)
-{
-    struct rpmtd_s td = {
-       .tag = tag,
-       .type = type,
-       .data = (void *) p,
-       .count = c,
-    };
-    return headerPut(h, &td, flags);
-}
-
-int headerAddOrAppendEntry(Header h, rpmTag tag, rpmTagType type,
-               rpm_constdata_t p, rpm_count_t c)
-{
-    return headerPutWrap(h, tag, type, p, c, HEADERPUT_APPEND);
-}
-
-int headerAppendEntry(Header h, rpmTag tag, rpmTagType type,
-               rpm_constdata_t p, rpm_count_t c)
-{
-    return headerPutWrap(h, tag, type, p, c, HEADERPUT_APPEND);
-}
-
-int headerAddEntry(Header h, rpmTag tag, rpmTagType type,
-               rpm_constdata_t p, rpm_count_t c)
-{
-    return headerPutWrap(h, tag, type, p, c, HEADERPUT_DEFAULT);
-}
-#undef _RPM_4_4_COMPAT
index 8223e30..a228603 100644 (file)
@@ -107,23 +107,6 @@ uint64_t htonll( uint64_t n );
 RPM_GNUC_INTERNAL
 void headerSetInstance(Header h, unsigned int instance);
 
-/** \ingroup header
- * Retrieve tag value with type match.
- * If *type is RPM_NULL_TYPE any type will match, otherwise only *type will
- * match.
- *
- * @param h            header
- * @param tag          tag
- * @retval type                address of tag value data type (or NULL)
- * @retval p           address of pointer to tag value(s) (or NULL)
- * @retval c           address of number of values (or NULL)
- * @return             1 on success, 0 on failure
- */
-int headerGetRawEntry(Header h, rpmTag tag,
-                       rpmTagType * type,
-                       rpm_data_t * p, 
-                       rpm_count_t * c);
-
 #ifdef __cplusplus
 }   
 #endif
index f06b3a5..04501ea 100644 (file)
@@ -251,3 +251,150 @@ int headerConvert(Header h, headerConvOps op)
     }
     return rc;
 };
+
+/*
+ * Backwards compatibility wrappers for legacy interfaces.
+ * Remove these some day...
+ */
+#define _RPM_4_4_COMPAT
+#include <rpm/rpmlegacy.h>
+
+/* dumb macro to avoid 50 copies of this code while converting... */
+#define TDWRAP() \
+    if (type) \
+       *type = td.type; \
+    if (p) \
+       *p = td.data; \
+    else \
+       rpmtdFreeData(&td); \
+    if (c) \
+       *c = td.count
+
+int headerRemoveEntry(Header h, rpmTag tag)
+{
+    return headerDel(h, tag);
+}
+
+static void *_headerFreeData(rpm_data_t data, rpmTagType type)
+{
+    if (data) {
+       if (type == RPM_FORCEFREE_TYPE ||
+           type == RPM_STRING_ARRAY_TYPE ||
+           type == RPM_I18NSTRING_TYPE ||
+           type == RPM_BIN_TYPE)
+               free(data);
+    }
+    return NULL;
+}
+
+void * headerFreeData(rpm_data_t data, rpmTagType type)
+{
+    return _headerFreeData(data, type);
+}
+
+void * headerFreeTag(Header h, rpm_data_t data, rpmTagType type)
+{
+    return _headerFreeData(data, type);
+}
+
+static int headerGetWrap(Header h, rpmTag tag,
+               rpmTagType * type,
+               rpm_data_t * p,
+               rpm_count_t * c,
+               headerGetFlags flags)
+{
+    struct rpmtd_s td;
+    int rc;
+
+    rc = headerGet(h, tag, &td, flags);
+    TDWRAP();
+    return rc;
+}
+
+int headerGetEntry(Header h, rpmTag tag,
+                       rpmTagType * type,
+                       rpm_data_t * p,
+                       rpm_count_t * c)
+{
+    return headerGetWrap(h, tag, type, p, c, HEADERGET_DEFAULT);
+}
+
+int headerGetEntryMinMemory(Header h, rpmTag tag,
+                       rpmTagType * type,
+                       rpm_data_t * p,
+                       rpm_count_t * c)
+{
+    return headerGetWrap(h, tag, type, (rpm_data_t) p, c, HEADERGET_MINMEM);
+}
+
+/* XXX shut up compiler warning from missing prototype */
+int headerGetRawEntry(Header h, rpmTag tag, rpmTagType * type, rpm_data_t * p,
+               rpm_count_t * c);
+
+int headerGetRawEntry(Header h, rpmTag tag, rpmTagType * type, rpm_data_t * p,
+               rpm_count_t * c)
+{
+    if (p == NULL) 
+       return headerIsEntry(h, tag);
+
+    return headerGetWrap(h, tag, type, p, c, HEADERGET_RAW);
+}
+
+int headerNextIterator(HeaderIterator hi,
+               rpmTag * tag,
+               rpmTagType * type,
+               rpm_data_t * p,
+               rpm_count_t * c)
+{
+    struct rpmtd_s td;
+    int rc;
+
+    rc = headerNext(hi, &td);
+    if (tag)
+       *tag = td.tag;
+    TDWRAP();
+    return rc;
+}
+
+int headerModifyEntry(Header h, rpmTag tag, rpmTagType type,
+                       rpm_constdata_t p, rpm_count_t c)
+{
+    struct rpmtd_s td = {
+       .tag = tag,
+       .type = type,
+       .data = (void *) p,
+       .count = c,
+    };
+    return headerMod(h, &td);
+}
+
+static int headerPutWrap(Header h, rpmTag tag, rpmTagType type,
+               rpm_constdata_t p, rpm_count_t c, headerPutFlags flags)
+{
+    struct rpmtd_s td = {
+       .tag = tag,
+       .type = type,
+       .data = (void *) p,
+       .count = c,
+    };
+    return headerPut(h, &td, flags);
+}
+
+int headerAddOrAppendEntry(Header h, rpmTag tag, rpmTagType type,
+               rpm_constdata_t p, rpm_count_t c)
+{
+    return headerPutWrap(h, tag, type, p, c, HEADERPUT_APPEND);
+}
+
+int headerAppendEntry(Header h, rpmTag tag, rpmTagType type,
+               rpm_constdata_t p, rpm_count_t c)
+{
+    return headerPutWrap(h, tag, type, p, c, HEADERPUT_APPEND);
+}
+
+int headerAddEntry(Header h, rpmTag tag, rpmTagType type,
+               rpm_constdata_t p, rpm_count_t c)
+{
+    return headerPutWrap(h, tag, type, p, c, HEADERPUT_DEFAULT);
+}
+#undef _RPM_4_4_COMPAT