Split up "diff_format" into "format" and "line_termination".

This removes the separate "formats" for name and name-with-zero-
termination.

It also removes the difference between HUMAN and MACHINE formats, and
they both become DIFF_FORMAT_RAW, with the difference being just in the
line and inter-filename termination.

It also makes the code easier to understand.
This commit is contained in:
Linus Torvalds
2005-07-14 17:59:17 -07:00
parent c0fd1f517e
commit e68b6f1525
7 changed files with 25 additions and 39 deletions

12
diff.c
View File

@ -977,16 +977,14 @@ static void diff_resolve_rename_copy(void)
diff_debug_queue("resolve-rename-copy done", q);
}
void diff_flush(int diff_output_style)
void diff_flush(int diff_output_style, int line_termination)
{
struct diff_queue_struct *q = &diff_queued_diff;
int i;
int line_termination = '\n';
int inter_name_termination = '\t';
if (diff_output_style == DIFF_FORMAT_MACHINE ||
diff_output_style == DIFF_FORMAT_NAME_Z)
line_termination = inter_name_termination = 0;
if (!line_termination)
inter_name_termination = 0;
for (i = 0; i < q->nr; i++) {
struct diff_filepair *p = q->queue[i];
@ -999,13 +997,11 @@ void diff_flush(int diff_output_style)
case DIFF_FORMAT_PATCH:
diff_flush_patch(p);
break;
case DIFF_FORMAT_HUMAN:
case DIFF_FORMAT_MACHINE:
case DIFF_FORMAT_RAW:
diff_flush_raw(p, line_termination,
inter_name_termination);
break;
case DIFF_FORMAT_NAME:
case DIFF_FORMAT_NAME_Z:
diff_flush_name(p, line_termination);
break;
}