@ -121,6 +121,17 @@ static int parse_dirstat_params(struct diff_options *options, const char *params
@@ -121,6 +121,17 @@ static int parse_dirstat_params(struct diff_options *options, const char *params
return ret;
}
static int parse_submodule_params(struct diff_options *options, const char *value)
{
if (!strcmp(value, "log"))
DIFF_OPT_SET(options, SUBMODULE_LOG);
else if (!strcmp(value, "short"))
DIFF_OPT_CLR(options, SUBMODULE_LOG);
else
return -1;
return 0;
}
static int git_config_rename(const char *var, const char *value)
{
if (!value)
@ -176,6 +187,13 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
@@ -176,6 +187,13 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
if (!strcmp(var, "diff.ignoresubmodules"))
handle_ignore_submodules_arg(&default_diff_options, value);
if (!strcmp(var, "diff.submodule")) {
if (parse_submodule_params(&default_diff_options, value))
warning(_("Unknown value for 'diff.submodule' config variable: '%s'"),
value);
return 0;
}
if (git_color_config(var, value, cb) < 0)
return -1;
@ -3473,6 +3491,14 @@ static int parse_dirstat_opt(struct diff_options *options, const char *params)
@@ -3473,6 +3491,14 @@ static int parse_dirstat_opt(struct diff_options *options, const char *params)
return 1;
}
static int parse_submodule_opt(struct diff_options *options, const char *value)
{
if (parse_submodule_params(options, value))
die(_("Failed to parse --submodule option parameter: '%s'"),
value);
return 1;
}
int diff_opt_parse(struct diff_options *options, const char **av, int ac)
{
const char *arg = av[0];
@ -3653,10 +3679,8 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
@@ -3653,10 +3679,8 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
handle_ignore_submodules_arg(options, arg + 20);
} else if (!strcmp(arg, "--submodule"))
DIFF_OPT_SET(options, SUBMODULE_LOG);
else if (!prefixcmp(arg, "--submodule=")) {
if (!strcmp(arg + 12, "log"))
DIFF_OPT_SET(options, SUBMODULE_LOG);
}
else if (!prefixcmp(arg, "--submodule="))
return parse_submodule_opt(options, arg + 12);
/* misc options */
else if (!strcmp(arg, "-z"))