From ded7f74551635f1e6fb68974416f5fc406ca909f Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 9 Feb 2018 14:20:12 +0100 Subject: retrieve array of strings from metadata --- rpminfo.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'rpminfo.c') diff --git a/rpminfo.c b/rpminfo.c index a044125..f594771 100644 --- a/rpminfo.c +++ b/rpminfo.c @@ -87,6 +87,23 @@ static void rpm_header_to_zval(zval *return_value, Header h, zend_bool full) case RPM_INT64_TYPE: add_assoc_long(return_value, rpmTagGetName(tag), (zend_long)headerGetNumber(h, tag)); break; + case RPM_STRING_ARRAY_TYPE: + { + struct rpmtd_s keys; + if (headerGet(h, tag, &keys, HEADERGET_MINMEM)) { + const char *key; + zval tmp; + + array_init(&tmp); + while ((key = rpmtdNextString(&keys))) { + add_next_index_string(&tmp, key); + } + add_assoc_zval(return_value, rpmTagGetName(tag), &tmp); + } else { + add_assoc_null(return_value, rpmTagGetName(tag)); + } + } + break; default: val = headerGetAsString(h, tag); if (val) { -- cgit