Steve Sistare <steven.sist...@oracle.com> writes:

> Signed-off-by: Steve Sistare <steven.sist...@oracle.com>
> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>
> ---
>  include/qemu/strList.h |  6 ++++++
>  util/strList.c         | 14 ++++++++++++++
>  2 files changed, 20 insertions(+)
>
> diff --git a/include/qemu/strList.h b/include/qemu/strList.h
> index 010237f..4b86aa6 100644
> --- a/include/qemu/strList.h
> +++ b/include/qemu/strList.h
> @@ -21,4 +21,10 @@
>   */
>  strList *strList_from_string(const char *in, const char *delim);
>  
> +/*
> + * Produce and return a NULL-terminated array of strings from @args.
> + * The result is g_malloc'd and all strings are g_strdup'd.
> + */
> +GStrv strv_from_strList(const strList *args);
> +
>  #endif
> diff --git a/util/strList.c b/util/strList.c
> index 7991de3..bad4187 100644
> --- a/util/strList.c
> +++ b/util/strList.c
> @@ -22,3 +22,17 @@ strList *strList_from_string(const char *str, const char 
> *delim)
>  
>      return res;
>  }
> +
> +GStrv strv_from_strList(const strList *args)

Suggest to name the argument @list.

> +{
> +    const strList *arg;

Suggest to name this @tail.

> +    int i = 0;
> +    GStrv argv = g_new(char *, QAPI_LIST_LENGTH(args) + 1);
> +
> +    for (arg = args; arg != NULL; arg = arg->next) {
> +        argv[i++] = g_strdup(arg->value);
> +    }
> +    argv[i] = NULL;
> +
> +    return argv;
> +}

Can we use char ** instread of GStrv?  I'd find that clearer.  For what
it's worth, GLib documentation of functions like g_strsplit() doesn't
use the GStrv typedef, either.


Reply via email to