mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
diff: use skip_to_optional_arg()
Let's simplify diff option parsing using skip_to_optional_arg(). Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
72885a6d51
commit
948cbe6703
23
diff.c
23
diff.c
@ -4508,17 +4508,12 @@ int diff_opt_parse(struct diff_options *options,
|
||||
options->output_format |= DIFF_FORMAT_NUMSTAT;
|
||||
else if (!strcmp(arg, "--shortstat"))
|
||||
options->output_format |= DIFF_FORMAT_SHORTSTAT;
|
||||
else if (!strcmp(arg, "-X") || !strcmp(arg, "--dirstat"))
|
||||
return parse_dirstat_opt(options, "");
|
||||
else if (skip_prefix(arg, "-X", &arg))
|
||||
return parse_dirstat_opt(options, arg);
|
||||
else if (skip_prefix(arg, "--dirstat=", &arg))
|
||||
else if (skip_prefix(arg, "-X", &arg) ||
|
||||
skip_to_optional_arg(arg, "--dirstat", &arg))
|
||||
return parse_dirstat_opt(options, arg);
|
||||
else if (!strcmp(arg, "--cumulative"))
|
||||
return parse_dirstat_opt(options, "cumulative");
|
||||
else if (!strcmp(arg, "--dirstat-by-file"))
|
||||
return parse_dirstat_opt(options, "files");
|
||||
else if (skip_prefix(arg, "--dirstat-by-file=", &arg)) {
|
||||
else if (skip_to_optional_arg(arg, "--dirstat-by-file", &arg)) {
|
||||
parse_dirstat_opt(options, "files");
|
||||
return parse_dirstat_opt(options, arg);
|
||||
}
|
||||
@ -4540,13 +4535,13 @@ int diff_opt_parse(struct diff_options *options,
|
||||
return stat_opt(options, av);
|
||||
|
||||
/* renames options */
|
||||
else if (starts_with(arg, "-B") || starts_with(arg, "--break-rewrites=") ||
|
||||
!strcmp(arg, "--break-rewrites")) {
|
||||
else if (starts_with(arg, "-B") ||
|
||||
skip_to_optional_arg(arg, "--break-rewrites", NULL)) {
|
||||
if ((options->break_opt = diff_scoreopt_parse(arg)) == -1)
|
||||
return error("invalid argument to -B: %s", arg+2);
|
||||
}
|
||||
else if (starts_with(arg, "-M") || starts_with(arg, "--find-renames=") ||
|
||||
!strcmp(arg, "--find-renames")) {
|
||||
else if (starts_with(arg, "-M") ||
|
||||
skip_to_optional_arg(arg, "--find-renames", NULL)) {
|
||||
if ((options->rename_score = diff_scoreopt_parse(arg)) == -1)
|
||||
return error("invalid argument to -M: %s", arg+2);
|
||||
options->detect_rename = DIFF_DETECT_RENAME;
|
||||
@ -4554,8 +4549,8 @@ int diff_opt_parse(struct diff_options *options,
|
||||
else if (!strcmp(arg, "-D") || !strcmp(arg, "--irreversible-delete")) {
|
||||
options->irreversible_delete = 1;
|
||||
}
|
||||
else if (starts_with(arg, "-C") || starts_with(arg, "--find-copies=") ||
|
||||
!strcmp(arg, "--find-copies")) {
|
||||
else if (starts_with(arg, "-C") ||
|
||||
skip_to_optional_arg(arg, "--find-copies", NULL)) {
|
||||
if (options->detect_rename == DIFF_DETECT_COPY)
|
||||
options->flags.find_copies_harder = 1;
|
||||
if ((options->rename_score = diff_scoreopt_parse(arg)) == -1)
|
||||
|
Loading…
Reference in New Issue
Block a user