{"thread":{"id":"40690","subject":"[PATCH] show-branch: use argv_array for default arguments","startedAt":"2015-10-31T19:06:45Z","lastAt":"2015-10-31T19:06:45Z","messageCount":1,"participants":["René Scharfe"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"272637","messageId":"56351145.1060100@web.de","threadId":"40690","inReplyTo":null,"subject":"[PATCH] show-branch: use argv_array for default arguments","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2015-10-31T19:06:45Z","receivedAt":"2015-10-31T19:06:45Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Use argv_array instead of open-coding it.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\n---\n builtin/show-branch.c | 24 ++++++++----------------\n 1 file changed, 8 insertions(+), 16 deletions(-)\n\ndiff --git a/builtin/show-branch.c b/builtin/show-branch.c\nindex ac5141d..e17744b 100644\n--- a/builtin/show-branch.c\n+++ b/builtin/show-branch.c\n@@ -3,6 +3,7 @@\n #include \"refs.h\"\n #include \"builtin.h\"\n #include \"color.h\"\n+#include \"argv-array.h\"\n #include \"parse-options.h\"\n \n static const char* show_branch_usage[] = {\n@@ -16,9 +17,7 @@ static const char* show_branch_usage[] = {\n \n static int showbranch_use_color = -1;\n \n-static int default_num;\n-static int default_alloc;\n-static const char **default_arg;\n+static struct argv_array default_args = ARGV_ARRAY_INIT;\n \n #define UNINTERESTING\t01\n \n@@ -556,16 +555,9 @@ static int git_show_branch_config(const char *var, const char *value, void *cb)\n \t\t * default_arg is now passed to parse_options(), so we need to\n \t\t * mimic the real argv a bit better.\n \t\t */\n-\t\tif (!default_num) {\n-\t\t\tdefault_alloc = 20;\n-\t\t\tdefault_arg = xcalloc(default_alloc, sizeof(*default_arg));\n-\t\t\tdefault_arg[default_num++] = \"show-branch\";\n-\t\t} else if (default_alloc <= default_num + 1) {\n-\t\t\tdefault_alloc = default_alloc * 3 / 2 + 20;\n-\t\t\tREALLOC_ARRAY(default_arg, default_alloc);\n-\t\t}\n-\t\tdefault_arg[default_num++] = xstrdup(value);\n-\t\tdefault_arg[default_num] = NULL;\n+\t\tif (!default_args.argc)\n+\t\t\targv_array_push(&default_args, \"show-branch\");\n+\t\targv_array_push(&default_args, value);\n \t\treturn 0;\n \t}\n \n@@ -685,9 +677,9 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)\n \tgit_config(git_show_branch_config, NULL);\n \n \t/* If nothing is specified, try the default first */\n-\tif (ac == 1 && default_num) {\n-\t\tac = default_num;\n-\t\tav = default_arg;\n+\tif (ac == 1 && default_args.argc) {\n+\t\tac = default_args.argc;\n+\t\tav = default_args.argv;\n \t}\n \n \tac = parse_options(ac, av, prefix, builtin_show_branch_options,\n-- \n2.6.2\n"}]}