Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
include/qapi/util.h | 6 ++++++
qapi/qapi-util.c | 14 ++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/include/qapi/util.h b/include/qapi/util.h
index 75dddca..51ff64e 100644
--- a/include/qapi/util.h
+++ b/include/qapi/util.h
@@ -33,6 +33,12 @@ bool qapi_bool_parse(const char *name, const char *value, bool *obj,
int parse_qapi_name(const char *name, bool complete);
/*
+ * Produce and return a NULL-terminated array of strings from @args.
+ * All strings are g_strdup'd.
+ */
+GStrv strv_from_strList(const struct strList *args);
+
+/*
* Produce a strList from the character delimited string @in.
* All strings are g_strdup'd.
* A NULL or empty input string returns NULL.
diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c
index b61c73c..8c96cab 100644
--- a/qapi/qapi-util.c
+++ b/qapi/qapi-util.c
@@ -154,6 +154,20 @@ int parse_qapi_name(const char *str, bool complete)
return p - str;
}
+GStrv strv_from_strList(const strList *args)
+{
+ const strList *arg;
+ int i = 0;
+ GStrv argv = g_malloc((QAPI_LIST_LENGTH(args) + 1) * sizeof(char *));
+
Better use g_new() here. Otherwise:
+ for (arg = args; arg != NULL; arg = arg->next) {
+ argv[i++] = g_strdup(arg->value);
+ }
+ argv[i] = NULL;
+
+ return argv;
+}
+
strList *strList_from_string(const char *in, char delim)
{
strList *res = NULL;
--
1.8.3.1