diff options
author | Etienne Samson <samson.etienne@gmail.com> | 2019-11-06 11:16:47 +0100 |
---|---|---|
committer | Etienne Samson <samson.etienne@gmail.com> | 2019-11-06 11:16:47 +0100 |
commit | c9a09b91c4c4fb1c8c26c837c2f4807aff34e8fd (patch) | |
tree | f276a16e4f80a4767061b9bd40751ae93ab21950 /examples | |
parent | 204a464f424ccaf49752f1c2d5bfc5536b4e0fd2 (diff) | |
download | libgit2-c9a09b91c4c4fb1c8c26c837c2f4807aff34e8fd.tar.gz |
examples: extract argument conversion helper
Diffstat (limited to 'examples')
-rw-r--r-- | examples/args.c | 14 | ||||
-rw-r--r-- | examples/args.h | 5 |
2 files changed, 19 insertions, 0 deletions
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 |