Don't use -C in "git diff"
[gitweb.git] / diff-files.c
index a425112c9e01ff356def1587484fc478daf63dc8..b6d972e06284f4a2b68204003321d9d8bcd42739 100644 (file)
@@ -17,6 +17,7 @@ static const char *pickaxe = NULL;
 static int pickaxe_opts = 0;
 static int diff_break_opt = -1;
 static const char *orderfile = NULL;
+static const char *diff_filter = NULL;
 static int silent = 0;
 
 static void show_unmerge(const char *path)
@@ -59,16 +60,25 @@ int main(int argc, const char **argv)
                        pickaxe = argv[1] + 2;
                else if (!strncmp(argv[1], "-O", 2))
                        orderfile = argv[1] + 2;
+               else if (!strncmp(argv[1], "--diff-filter=", 14))
+                       diff_filter = argv[1] + 14;
                else if (!strcmp(argv[1], "--pickaxe-all"))
                        pickaxe_opts = DIFF_PICKAXE_ALL;
-               else if (!strncmp(argv[1], "-B", 2))
-                       diff_break_opt = diff_scoreopt_parse(argv[1]);
+               else if (!strncmp(argv[1], "-B", 2)) {
+                       if ((diff_break_opt =
+                            diff_scoreopt_parse(argv[1])) == -1)
+                               usage(diff_files_usage);
+               }
                else if (!strncmp(argv[1], "-M", 2)) {
-                       diff_score_opt = diff_scoreopt_parse(argv[1]);
+                       if ((diff_score_opt =
+                            diff_scoreopt_parse(argv[1])) == -1)
+                               usage(diff_files_usage);
                        detect_rename = DIFF_DETECT_RENAME;
                }
                else if (!strncmp(argv[1], "-C", 2)) {
-                       diff_score_opt = diff_scoreopt_parse(argv[1]);
+                       if ((diff_score_opt =
+                            diff_scoreopt_parse(argv[1])) == -1)
+                               usage(diff_files_usage);
                        detect_rename = DIFF_DETECT_COPY;
                }
                else
@@ -124,7 +134,7 @@ int main(int argc, const char **argv)
                     detect_rename, diff_score_opt,
                     pickaxe, pickaxe_opts,
                     diff_break_opt,
-                    orderfile);
-       diff_flush(diff_output_format, 1);
+                    orderfile, diff_filter);
+       diff_flush(diff_output_format);
        return 0;
 }