Code

Merge branch 'th/diff-extra'
authorJunio C Hamano <junkio@cox.net>
Sun, 13 Aug 2006 02:34:41 +0000 (19:34 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 13 Aug 2006 02:34:41 +0000 (19:34 -0700)
builtin-diff-files.c
builtin-diff.c
diff.c

index ac13db70ff741240f1f27f98dfe09614da4ea87c..5d4a5c5828d1202b6d6b2eadffc51fc131a37dc5 100644 (file)
@@ -47,12 +47,5 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix)
        if (rev.pending.nr ||
            rev.min_age != -1 || rev.max_age != -1)
                usage(diff_files_usage);
-       /*
-        * Backward compatibility wart - "diff-files -s" used to
-        * defeat the common diff option "-s" which asked for
-        * DIFF_FORMAT_NO_OUTPUT.
-        */
-       if (rev.diffopt.output_format == DIFF_FORMAT_NO_OUTPUT)
-               rev.diffopt.output_format = DIFF_FORMAT_RAW;
        return run_diff_files(&rev, silent);
 }
index a090e298a55ef110a6fdd0e0dde54ea744a52f76..82afce782d88a1f773599332910982ef804aea12 100644 (file)
@@ -56,13 +56,6 @@ static int builtin_diff_files(struct rev_info *revs,
        if (revs->max_count < 0 &&
            (revs->diffopt.output_format & DIFF_FORMAT_PATCH))
                revs->combine_merges = revs->dense_combined_merges = 1;
-       /*
-        * Backward compatibility wart - "diff-files -s" used to
-        * defeat the common diff option "-s" which asked for
-        * DIFF_FORMAT_NO_OUTPUT.
-        */
-       if (revs->diffopt.output_format == DIFF_FORMAT_NO_OUTPUT)
-               revs->diffopt.output_format = DIFF_FORMAT_RAW;
        return run_diff_files(revs, silent);
 }
 
diff --git a/diff.c b/diff.c
index a8710cb9e2388ce915fabc99cb86caacd1020961..8861b853e70ab511fdcab16d97687aafc99ec000 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -1679,6 +1679,19 @@ void diff_setup(struct diff_options *options)
 
 int diff_setup_done(struct diff_options *options)
 {
+       int count = 0;
+
+       if (options->output_format & DIFF_FORMAT_NAME)
+               count++;
+       if (options->output_format & DIFF_FORMAT_NAME_STATUS)
+               count++;
+       if (options->output_format & DIFF_FORMAT_CHECKDIFF)
+               count++;
+       if (options->output_format & DIFF_FORMAT_NO_OUTPUT)
+               count++;
+       if (count > 1)
+               die("--name-only, --name-status, --check and -s are mutually exclusive");
+
        if (options->find_copies_harder)
                options->detect_rename = DIFF_DETECT_COPY;