Skip to content
Permalink
Browse files

Merge pull request #1784 from gitster/tb/config-default

builtin/config: work around an unsized array forward declaration
  • Loading branch information...
dscho committed Aug 8, 2018
2 parents 0a4aaab + 6aaded5 commit ede0edbc8b1c8bc74db20afbf1c0f62eb276425c
Showing with 15 additions and 12 deletions.
  1. +15 −12 builtin/config.c
@@ -67,7 +67,7 @@ static int show_origin;
{ OPTION_CALLBACK, (s), (l), (v), NULL, (h), PARSE_OPT_NOARG | \
PARSE_OPT_NONEG, option_parse_type, (i) }

static struct option builtin_config_options[];
static NORETURN void usage_builtin_config(void);

static int option_parse_type(const struct option *opt, const char *arg,
int unset)
@@ -111,8 +111,7 @@ static int option_parse_type(const struct option *opt, const char *arg,
* --type=int'.
*/
error("only one type at a time.");
usage_with_options(builtin_config_usage,
builtin_config_options);
usage_builtin_config();
}
*to_type = new_type;

@@ -157,11 +156,16 @@ static struct option builtin_config_options[] = {
OPT_END(),
};

static NORETURN void usage_builtin_config(void)
{
usage_with_options(builtin_config_usage, builtin_config_options);
}

static void check_argc(int argc, int min, int max) {
if (argc >= min && argc <= max)
return;
error("wrong number of arguments");
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}

static void show_config_origin(struct strbuf *buf)
@@ -596,7 +600,7 @@ int cmd_config(int argc, const char **argv, const char *prefix)
if (use_global_config + use_system_config + use_local_config +
!!given_config_source.file + !!given_config_source.blob > 1) {
error("only one config file at a time.");
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}

if (use_local_config && nongit)
@@ -660,38 +664,37 @@ int cmd_config(int argc, const char **argv, const char *prefix)

if ((actions & (ACTION_GET_COLOR|ACTION_GET_COLORBOOL)) && type) {
error("--get-color and variable type are incoherent");
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}

if (HAS_MULTI_BITS(actions)) {
error("only one action at a time.");
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}
if (actions == 0)
switch (argc) {
case 1: actions = ACTION_GET; break;
case 2: actions = ACTION_SET; break;
case 3: actions = ACTION_SET_ALL; break;
default:
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}
if (omit_values &&
!(actions == ACTION_LIST || actions == ACTION_GET_REGEXP)) {
error("--name-only is only applicable to --list or --get-regexp");
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}

if (show_origin && !(actions &
(ACTION_GET|ACTION_GET_ALL|ACTION_GET_REGEXP|ACTION_LIST))) {
error("--show-origin is only applicable to --get, --get-all, "
"--get-regexp, and --list.");
usage_with_options(builtin_config_usage, builtin_config_options);
usage_builtin_config();
}

if (default_value && !(actions & ACTION_GET)) {
error("--default is only applicable to --get");
usage_with_options(builtin_config_usage,
builtin_config_options);
usage_builtin_config();
}

if (actions & PAGING_ACTIONS)

0 comments on commit ede0edb

Please sign in to comment.
You can’t perform that action at this time.