[PATCH] Clean up diff_setup() to make it more extensible.
authorJunio C Hamano <junkio@cox.net>
Fri, 27 May 2005 22:54:37 +0000 (15:54 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 29 May 2005 18:17:43 +0000 (11:17 -0700)
This changes the argument of diff_setup() from an integer that
says if we are feeding reversed diff to a bitmask, so that later
global options can be added more easily.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-cache.c
diff-files.c
diff-tree.c
diff.c
diff.h

index d573459ba4633775ece269594d277202a9cff2ff..963c628ed40ab109c3cd13195684c05e2a18ac49 100644 (file)
@@ -5,7 +5,7 @@ static int cached_only = 0;
 static int diff_output_format = DIFF_FORMAT_HUMAN;
 static int match_nonexisting = 0;
 static int detect_rename = 0;
-static int reverse_diff = 0;
+static int diff_setup_opt = 0;
 static int diff_score_opt = 0;
 static const char *pickaxe = NULL;
 
@@ -202,7 +202,7 @@ int main(int argc, const char **argv)
                        continue;
                }
                if (!strcmp(arg, "-R")) {
-                       reverse_diff = 1;
+                       diff_setup_opt |= DIFF_SETUP_REVERSE;
                        continue;
                }
                if (!strcmp(arg, "-S")) {
@@ -224,7 +224,7 @@ int main(int argc, const char **argv)
                usage(diff_cache_usage);
 
        /* The rest is for paths restriction. */
-       diff_setup(reverse_diff);
+       diff_setup(diff_setup_opt);
 
        mark_merge_entries();
 
index d7cfad79e7aae77bb121cf5c678ba02c98184c3e..c9c914be144acedb47abd0bfa580f102911dd56a 100644 (file)
@@ -11,7 +11,7 @@ static const char *diff_files_usage =
 
 static int diff_output_format = DIFF_FORMAT_HUMAN;
 static int detect_rename = 0;
-static int reverse_diff = 0;
+static int diff_setup_opt = 0;
 static int diff_score_opt = 0;
 static const char *pickaxe = NULL;
 static int silent = 0;
@@ -51,7 +51,7 @@ int main(int argc, const char **argv)
                else if (!strcmp(argv[1], "-z"))
                        diff_output_format = DIFF_FORMAT_MACHINE;
                else if (!strcmp(argv[1], "-R"))
-                       reverse_diff = 1;
+                       diff_setup_opt |= DIFF_SETUP_REVERSE;
                else if (!strcmp(argv[1], "-S"))
                        pickaxe = argv[1] + 2;
                else if (!strncmp(argv[1], "-M", 2)) {
@@ -75,7 +75,7 @@ int main(int argc, const char **argv)
                exit(1);
        }
 
-       diff_setup(reverse_diff);
+       diff_setup(diff_setup_opt);
 
        for (i = 0; i < entries; i++) {
                struct stat st;
index 80d02b4f5ba7bb86a6bd29662ecdd12bbb516fbf..c41cdd0d2ee96e43ac8fe16374a0a7ad87be3913 100644 (file)
@@ -10,7 +10,7 @@ static int show_tree_entry_in_recursive = 0;
 static int read_stdin = 0;
 static int diff_output_format = DIFF_FORMAT_HUMAN;
 static int detect_rename = 0;
-static int reverse_diff = 0;
+static int diff_setup_opt = 0;
 static int diff_score_opt = 0;
 static const char *pickaxe = NULL;
 static const char *header = NULL;
@@ -255,7 +255,7 @@ static int diff_tree_sha1(const unsigned char *old, const unsigned char *new, co
 
 static void call_diff_setup(void)
 {
-       diff_setup(reverse_diff);
+       diff_setup(diff_setup_opt);
 }
 
 static int call_diff_flush(void)
@@ -497,7 +497,7 @@ int main(int argc, const char **argv)
                        continue;
                }
                if (!strcmp(arg, "-R")) {
-                       reverse_diff = 1;
+                       diff_setup_opt |= DIFF_SETUP_REVERSE;
                        continue;
                }
                if (!strcmp(arg, "-p")) {
diff --git a/diff.c b/diff.c
index f15eb08ef7597ae7f538724f5814bd5fa87694d6..a11675551e8330a89ed2d56ed612d219ec71d4b8 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -492,9 +492,10 @@ static void run_diff(const char *name,
                run_external_diff(pgm, name, other, one, two, xfrm_msg);
 }
 
-void diff_setup(int reverse_diff_)
+void diff_setup(int flags)
 {
-       reverse_diff = reverse_diff_;
+       if (flags & DIFF_SETUP_REVERSE)
+               reverse_diff = 1;
 }
 
 struct diff_queue_struct diff_queued_diff;
diff --git a/diff.h b/diff.h
index 0d1f9ae347fdaf9970a80ccc47114b474dafa35d..6c250237460b548e9e2ce24234de1ec63d48f413 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -28,11 +28,8 @@ extern void diff_unmerge(const char *path);
 
 extern int diff_scoreopt_parse(const char *opt);
 
-#define DIFF_FORMAT_HUMAN      0
-#define DIFF_FORMAT_MACHINE    1
-#define DIFF_FORMAT_PATCH      2
-#define DIFF_FORMAT_NO_OUTPUT  3
-extern void diff_setup(int reverse);
+#define DIFF_SETUP_REVERSE             1
+extern void diff_setup(int flags);
 
 #define DIFF_DETECT_RENAME     1
 #define DIFF_DETECT_COPY       2
@@ -44,6 +41,11 @@ extern void diffcore_pathspec(const char **pathspec);
 
 extern int diff_queue_is_empty(void);
 
+#define DIFF_FORMAT_HUMAN      0
+#define DIFF_FORMAT_MACHINE    1
+#define DIFF_FORMAT_PATCH      2
+#define DIFF_FORMAT_NO_OUTPUT  3
+
 extern void diff_flush(int output_style, int resolve_rename_copy);
 
 #endif /* DIFF_H */