Commits

Anonymous committed e68b6f1

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.

Comments (0)

Files changed (7)

 #include "diff.h"
 
 static int cached_only = 0;
-static int diff_output_format = DIFF_FORMAT_HUMAN;
+static int diff_output_format = DIFF_FORMAT_RAW;
+static int diff_line_termination = '\n';
 static int match_nonexisting = 0;
 static int detect_rename = 0;
 static int find_copies_harder = 0;
 			continue;
 		}
 		if (!strcmp(arg, "-z")) {
-			diff_output_format = DIFF_FORMAT_MACHINE;
+			diff_line_termination = 0;
 			continue;
 		}
 		if (!strcmp(arg, "--name-only")) {
 			diff_output_format = DIFF_FORMAT_NAME;
 			continue;
 		}
-		if (!strcmp(arg, "--name-only-z")) {
-			diff_output_format = DIFF_FORMAT_NAME_Z;
-			continue;
-		}
 		if (!strcmp(arg, "-R")) {
 			diff_setup_opt |= DIFF_SETUP_REVERSE;
 			continue;
 		     pickaxe, pickaxe_opts,
 		     diff_break_opt,
 		     orderfile, diff_filter);
-	diff_flush(diff_output_format);
+	diff_flush(diff_output_format, diff_line_termination);
 	return ret;
 }
 "[<common diff options>] [<path>...]"
 COMMON_DIFF_OPTIONS_HELP;
 
-static int diff_output_format = DIFF_FORMAT_HUMAN;
+static int diff_output_format = DIFF_FORMAT_RAW;
+static int diff_line_termination = '\n';
 static int detect_rename = 0;
 static int find_copies_harder = 0;
 static int diff_setup_opt = 0;
 		else if (!strcmp(argv[1], "-s"))
 			; /* no-op */
 		else if (!strcmp(argv[1], "-z"))
-			diff_output_format = DIFF_FORMAT_MACHINE;
+			diff_line_termination = 0;
 		else if (!strcmp(argv[1], "--name-only"))
 			diff_output_format = DIFF_FORMAT_NAME;
-		else if (!strcmp(argv[1], "--name-only-z"))
-			diff_output_format = DIFF_FORMAT_NAME_Z;
 		else if (!strcmp(argv[1], "-R"))
 			diff_setup_opt |= DIFF_SETUP_REVERSE;
 		else if (!strncmp(argv[1], "-S", 2))
 		     pickaxe, pickaxe_opts,
 		     diff_break_opt,
 		     orderfile, diff_filter);
-	diff_flush(diff_output_format);
+	diff_flush(diff_output_format, diff_line_termination);
 	return 0;
 }
 	diffcore_std_no_resolve(av + 1,
 				pickaxe, pickaxe_opts,
 				orderfile, diff_filter);
-	diff_flush(DIFF_FORMAT_PATCH);
+	diff_flush(DIFF_FORMAT_PATCH, '\n');
 }
 
 static const char *diff_helper_usage =
 #include "cache.h"
 #include "diff.h"
 
-static int diff_output_format = DIFF_FORMAT_HUMAN;
+static int diff_output_format = DIFF_FORMAT_RAW;
+static int diff_line_termination = '\n';
 static int detect_rename = 0;
 static int find_copies_harder = 0;
 static int diff_setup_opt = 0;
 		else if (!strcmp(arg, "--find-copies-harder"))
 			find_copies_harder = 1;
 		else if (!strcmp(arg, "-z"))
-			diff_output_format = DIFF_FORMAT_MACHINE;
+			diff_line_termination = 0;
 		else if (!strcmp(arg, "--name-only"))
 			diff_output_format = DIFF_FORMAT_NAME;
-		else if (!strcmp(arg, "--name-only-z"))
-			diff_output_format = DIFF_FORMAT_NAME_Z;
 		else if (!strcmp(arg, "-R"))
 			diff_setup_opt |= DIFF_SETUP_REVERSE;
 		else if (!strncmp(arg, "-S", 2))
 		     diff_break_opt,
 		     orderfile,
 		     diff_filter);
-	diff_flush(diff_output_format);
+	diff_flush(diff_output_format, diff_line_termination);
 	return 0;
 }
 static int recursive = 0;
 static int show_tree_entry_in_recursive = 0;
 static int read_stdin = 0;
-static int diff_output_format = DIFF_FORMAT_HUMAN;
+static int diff_output_format = DIFF_FORMAT_RAW;
+static int diff_line_termination = '\n';
 static int detect_rename = 0;
 static int find_copies_harder = 0;
 static int diff_setup_opt = 0;
 		     orderfile,
 		     diff_filter);
 	if (diff_queue_is_empty()) {
-		diff_flush(DIFF_FORMAT_NO_OUTPUT);
+		diff_flush(DIFF_FORMAT_NO_OUTPUT, diff_line_termination);
 		return 0;
 	}
 	if (header) {
-		printf("%s%c", header, diff_output_format == DIFF_FORMAT_MACHINE ? 0 : '\n');
+		printf("%s%c", header, diff_line_termination);
 		header = NULL;
 	}
-	diff_flush(diff_output_format);
+	diff_flush(diff_output_format, diff_line_termination);
 	return 1;
 }
 
 			diff_output_format = DIFF_FORMAT_NAME;
 			continue;
 		}
-		if (!strcmp(arg, "--name-only-z")) {
-			diff_output_format = DIFF_FORMAT_NAME_Z;
-			continue;
-		}
 		if (!strcmp(arg, "-z")) {
-			diff_output_format = DIFF_FORMAT_MACHINE;
+			diff_line_termination = 0;
 			continue;
 		}
 		if (!strcmp(arg, "-m")) {
 	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];
 		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;
 		}
 
 extern int diff_queue_is_empty(void);
 
-#define DIFF_FORMAT_HUMAN	0
-#define DIFF_FORMAT_MACHINE	1
+#define DIFF_FORMAT_RAW		1
 #define DIFF_FORMAT_PATCH	2
 #define DIFF_FORMAT_NO_OUTPUT	3
 #define DIFF_FORMAT_NAME	4
-#define DIFF_FORMAT_NAME_Z	5
 
-extern void diff_flush(int output_style);
+extern void diff_flush(int output_style, int line_terminator);
 
 #endif /* DIFF_H */