X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=diff.c;h=315eb5c26ac347a54ff0a4013ad40844ecf2812e;hb=000182eacf99cde27d5916aa415921924b82972c;hp=7ccc1ed7c4dab62593c0c95b1fa070017b6d59a4;hpb=0e3994fa97e9876b571531444b97ae6e63fd744d;p=git.git diff --git a/diff.c b/diff.c index 7ccc1ed7..315eb5c2 100644 --- a/diff.c +++ b/diff.c @@ -614,7 +614,7 @@ static int parse_num(const char **cp_p) int diff_scoreopt_parse(const char *opt) { - int opt1, cmd; + int opt1, opt2, cmd; if (*opt++ != '-') return -1; @@ -623,9 +623,21 @@ int diff_scoreopt_parse(const char *opt) return -1; /* that is not a -M, -C nor -B option */ opt1 = parse_num(&opt); + if (cmd != 'B') + opt2 = 0; + else { + if (*opt == 0) + opt2 = 0; + else if (*opt != '/') + return -1; /* we expect -B80/99 or -B80 */ + else { + opt++; + opt2 = parse_num(&opt); + } + } if (*opt != 0) return -1; - return opt1; + return opt1 | (opt2 << 16); } struct diff_queue_struct diff_queued_diff; @@ -955,6 +967,8 @@ void diffcore_std(const char **paths, diffcore_break(break_opt); if (detect_rename) diffcore_rename(detect_rename, rename_score); + if (0 <= break_opt) + diffcore_merge_broken(); if (pickaxe) diffcore_pickaxe(pickaxe, pickaxe_opts); if (orderfile)