diff-files: -c and --cc options.

This ports the "combined diff" to diff-files so that differences
to the working tree files since stage 2 and stage 3 are shown
the same way as combined diff output from diff-tree for the
merge commit would be shown if the current working tree files
are committed.

Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/diff.h b/diff.h
index ab0d47b..539bd2f 100644
--- a/diff.h
+++ b/diff.h
@@ -56,6 +56,17 @@
 extern int diff_tree_sha1(const unsigned char *old, const unsigned char *new,
 			  const char *base, struct diff_options *opt);
 
+struct combine_diff_path {
+	struct combine_diff_path *next;
+	int len;
+	char *path;
+	unsigned char sha1[20];
+	unsigned char parent_sha1[FLEX_ARRAY][20];
+};
+
+int show_combined_diff(struct combine_diff_path *elem, int num_parent,
+		       int dense, const char *header, int show_empty);
+
 extern int diff_tree_combined_merge(const unsigned char *sha1, const char *, int, int);
 
 extern void diff_addremove(struct diff_options *,