From c9a09b91c4c4fb1c8c26c837c2f4807aff34e8fd Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Wed, 6 Nov 2019 11:16:47 +0100 Subject: [PATCH] examples: extract argument conversion helper --- examples/args.c | 14 ++++++++++++++ examples/args.h | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/examples/args.c b/examples/args.c index 208c38256..533e1579b 100644 --- a/examples/args.c +++ b/examples/args.c @@ -181,3 +181,17 @@ int match_arg_separator(struct args_info *args) args->pos++; return 1; } + +void strarray_from_args(git_strarray *array, struct args_info *args) +{ + size_t i; + + array->count = args->argc - args->pos; + array->strings = calloc(array->count, sizeof(char *)); + assert(array->strings != NULL); + + for (i = 0; args->pos < args->argc; ++args->pos) { + array->strings[i++] = args->argv[args->pos]; + } + args->pos = args->argc; +} diff --git a/examples/args.h b/examples/args.h index 2c68bdb8b..d626f98c8 100644 --- a/examples/args.h +++ b/examples/args.h @@ -82,4 +82,9 @@ extern int match_bool_arg(int *out, struct args_info *args, const char *opt); */ extern int match_arg_separator(struct args_info *args); +/** + * Consume all remaining arguments in a git_strarray + */ +extern void strarray_from_args(git_strarray *array, struct args_info *args); + #endif