summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorEtienne Samson <samson.etienne@gmail.com>2019-11-06 11:16:47 +0100
committerEtienne Samson <samson.etienne@gmail.com>2019-11-06 11:16:47 +0100
commitc9a09b91c4c4fb1c8c26c837c2f4807aff34e8fd (patch)
treef276a16e4f80a4767061b9bd40751ae93ab21950 /examples
parent204a464f424ccaf49752f1c2d5bfc5536b4e0fd2 (diff)
downloadlibgit2-c9a09b91c4c4fb1c8c26c837c2f4807aff34e8fd.tar.gz
examples: extract argument conversion helper
Diffstat (limited to 'examples')
-rw-r--r--examples/args.c14
-rw-r--r--examples/args.h5
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