Fix some more diff options changes.
This fixes various problems in the new diff options code. - Fix --cc/-c --patch; it showed two-tree diff used internally. - Use "---\n" only where it matters -- that is, use it immediately after the commit log text when we show a commit log and something else before the patch text. - Do not output spurious extra "\n"; have an extra newline after the commit log text always when we have diff output and we are not doing oneline. - When running a pickaxe you need to go recursive. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
15
diff.c
15
diff.c
@ -1424,7 +1424,7 @@ void diff_setup(struct diff_options *options)
|
||||
options->break_opt = -1;
|
||||
options->rename_limit = -1;
|
||||
options->context = 3;
|
||||
options->msg_sep = "\n";
|
||||
options->msg_sep = "";
|
||||
|
||||
options->change = diff_change;
|
||||
options->add_remove = diff_addremove;
|
||||
@ -1455,6 +1455,11 @@ int diff_setup_done(struct diff_options *options)
|
||||
DIFF_FORMAT_DIFFSTAT |
|
||||
DIFF_FORMAT_CHECKDIFF))
|
||||
options->recursive = 1;
|
||||
/*
|
||||
* Also pickaxe would not work very well if you do not say recursive
|
||||
*/
|
||||
if (options->pickaxe)
|
||||
options->recursive = 1;
|
||||
|
||||
if (options->detect_rename && options->rename_limit < 0)
|
||||
options->rename_limit = diff_rename_limit_default;
|
||||
@ -2143,9 +2148,6 @@ void diff_flush(struct diff_options *options)
|
||||
if (output_format & DIFF_FORMAT_DIFFSTAT) {
|
||||
struct diffstat_t diffstat;
|
||||
|
||||
if (separator++)
|
||||
putchar('\n');
|
||||
|
||||
memset(&diffstat, 0, sizeof(struct diffstat_t));
|
||||
diffstat.xm.consume = diffstat_consume;
|
||||
for (i = 0; i < q->nr; i++) {
|
||||
@ -2154,14 +2156,13 @@ void diff_flush(struct diff_options *options)
|
||||
diff_flush_stat(p, options, &diffstat);
|
||||
}
|
||||
show_stats(&diffstat);
|
||||
separator++;
|
||||
}
|
||||
|
||||
if (output_format & DIFF_FORMAT_SUMMARY && !is_summary_empty(q)) {
|
||||
if (separator++)
|
||||
putchar('\n');
|
||||
|
||||
for (i = 0; i < q->nr; i++)
|
||||
diff_summary(q->queue[i]);
|
||||
separator++;
|
||||
}
|
||||
|
||||
if (output_format & DIFF_FORMAT_PATCH) {
|
||||
|
||||
Reference in New Issue
Block a user