From 2c0f7b54ad8e820ec357c2cad08b8d31fa601ead Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 18 Apr 2008 12:36:02 +0300 Subject: [PATCH] Add argvJoin() for combining an argv array into a string --- rpmio/argv.c | 12 ++++++++++++ rpmio/argv.h | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/rpmio/argv.c b/rpmio/argv.c index 0ff05acf0..ff11f5c4a 100644 --- a/rpmio/argv.c +++ b/rpmio/argv.c @@ -197,3 +197,15 @@ int argvSplit(ARGV_t * argvp, const char * str, const char * seps) *argvp = argv; return 0; } + +char *argvJoin(ARGV_const_t argv, const char *sep) +{ + char *dest = NULL; + char * const *arg; + + for (arg = argv; *arg; arg++) { + rstrscat(&dest, *arg, *(arg+1) ? sep : "", NULL); + } + return dest; +} + diff --git a/rpmio/argv.h b/rpmio/argv.h index 043275236..6a6fc7f14 100644 --- a/rpmio/argv.h +++ b/rpmio/argv.h @@ -147,6 +147,14 @@ int argvAppend(ARGV_t * argvp, ARGV_const_t av); */ int argvSplit(ARGV_t * argvp, const char * str, const char * seps); +/** \ingroup rpmargv + * Join an argv array into a string. + * @param *argv argv array to join + * @param sep seperator string to use + * @return malloc'ed string + */ +char *argvJoin(ARGV_const_t argv, const char *sep); + #ifdef __cplusplus } #endif