From e5ad3f774c0d1fa87e460cdeee2bd0d1c5ce1156 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 12 Jun 2012 17:37:34 +0000 Subject: (addtag) adapt to rpm 4.6 changes: - headerAddOrAppendEntry -> headerPut - headerAddEntry -> headerPutString also thread RPM_STRING_TYPE like RPM_BIN_TYPE else this introduces a testsuite regression git-svn-id: svn+ssh://haiku.zarb.org/home/projects/rpm4/svn/trunk@194 971eb68f-4bfb-0310-8326-d2484c010a4c --- RPM4/src/RPM4.xs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/RPM4/src/RPM4.xs b/RPM4/src/RPM4.xs index 1535890..4e62492 100644 --- a/RPM4/src/RPM4.xs +++ b/RPM4/src/RPM4.xs @@ -1047,25 +1047,33 @@ Header_addtag(h, sv_tag, sv_tagtype, ...) /* if (tag == RPMTAG_OLDFILENAMES) expandFilelist(h); */ for (i = 3; (i < items) && RETVAL; i++) { + struct rpmtd_s td = { + .tag = tag, + .type = tagtype, + .data = (void *) &value, + .count = 1, + }; switch (tagtype) { case RPM_CHAR_TYPE: case RPM_INT8_TYPE: case RPM_INT16_TYPE: case RPM_INT32_TYPE: ivalue = SvUV(ST(i)); - RETVAL = headerAddOrAppendEntry(h, tag, tagtype, &ivalue, 1); + td.data = (void *) &ivalue; + RETVAL = headerPut(h, &td, HEADERPUT_APPEND); break; + case RPM_STRING_TYPE: case RPM_BIN_TYPE: value = (char *)SvPV(ST(i), len); - RETVAL = headerAddEntry(h, tag, tagtype, value, len); + RETVAL = headerPutString(h, tag, value); break; case RPM_STRING_ARRAY_TYPE: value = SvPV_nolen(ST(i)); - RETVAL = headerAddOrAppendEntry(h, tag, tagtype, &value, 1); + RETVAL = headerPut(h, &td, HEADERPUT_APPEND); break; default: value = SvPV_nolen(ST(i)); - RETVAL = headerAddOrAppendEntry(h, tag, tagtype, value, 1); + RETVAL = headerPut(h, &td, HEADERPUT_APPEND); break; } } -- cgit v1.2.1