summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-11-03 23:13:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-11-03 23:13:07 (GMT)
commit654b986decd71bafd98a129ae709848949fe4a21 (patch)
treef235c6ae34b850b09c022948c6d684c283f392c3
parent4b571eb0c2149a3a45d7fe8bf2e93e67eab4a4c9 (diff)
parentc949b00fb8ade8b5ad806ea801983f980181d5a5 (diff)
downloadgit-654b986decd71bafd98a129ae709848949fe4a21.zip
git-654b986decd71bafd98a129ae709848949fe4a21.tar.gz
git-654b986decd71bafd98a129ae709848949fe4a21.tar.bz2
Merge branch 'rs/show-branch-argv-array'
Code simplification. * rs/show-branch-argv-array: show-branch: use argv_array for default arguments
-rw-r--r--builtin/show-branch.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index ac5141d..e17744b 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -3,6 +3,7 @@
#include "refs.h"
#include "builtin.h"
#include "color.h"
+#include "argv-array.h"
#include "parse-options.h"
static const char* show_branch_usage[] = {
@@ -16,9 +17,7 @@ static const char* show_branch_usage[] = {
static int showbranch_use_color = -1;
-static int default_num;
-static int default_alloc;
-static const char **default_arg;
+static struct argv_array default_args = ARGV_ARRAY_INIT;
#define UNINTERESTING 01
@@ -556,16 +555,9 @@ static int git_show_branch_config(const char *var, const char *value, void *cb)
* default_arg is now passed to parse_options(), so we need to
* mimic the real argv a bit better.
*/
- if (!default_num) {
- default_alloc = 20;
- default_arg = xcalloc(default_alloc, sizeof(*default_arg));
- default_arg[default_num++] = "show-branch";
- } else if (default_alloc <= default_num + 1) {
- default_alloc = default_alloc * 3 / 2 + 20;
- REALLOC_ARRAY(default_arg, default_alloc);
- }
- default_arg[default_num++] = xstrdup(value);
- default_arg[default_num] = NULL;
+ if (!default_args.argc)
+ argv_array_push(&default_args, "show-branch");
+ argv_array_push(&default_args, value);
return 0;
}
@@ -685,9 +677,9 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
git_config(git_show_branch_config, NULL);
/* If nothing is specified, try the default first */
- if (ac == 1 && default_num) {
- ac = default_num;
- av = default_arg;
+ if (ac == 1 && default_args.argc) {
+ ac = default_args.argc;
+ av = default_args.argv;
}
ac = parse_options(ac, av, prefix, builtin_show_branch_options,