Optionally do not list empty directories in git-ls-files --others
[gitweb.git] / diff.h
diff --git a/diff.h b/diff.h
index 9a0169c03ceb82b5cc2c246fa9f70e2f8399ec33..8fac465a9df9b1d8789d17f008968295baa27ad1 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -13,6 +13,9 @@ struct tree_desc {
        unsigned long size;
 };
 
+extern void update_tree_entry(struct tree_desc *);
+extern const unsigned char *tree_entry_extract(struct tree_desc *, const char **, unsigned int *);
+
 struct diff_options;
 
 typedef void (*change_fn_t)(struct diff_options *options,
@@ -60,14 +63,23 @@ struct combine_diff_path {
        struct combine_diff_path *next;
        int len;
        char *path;
+       unsigned int mode;
        unsigned char sha1[20];
-       unsigned char parent_sha1[FLEX_ARRAY][20];
+       struct combine_diff_parent {
+               char status;
+               unsigned int mode;
+               unsigned char sha1[20];
+       } parent[FLEX_ARRAY];
 };
+#define combine_diff_path_size(n, l) \
+       (sizeof(struct combine_diff_path) + \
+        sizeof(struct combine_diff_parent) * (n) + (l) + 1)
 
-int show_combined_diff(struct combine_diff_path *elem, int num_parent,
-                      int dense, const char *header, int show_empty);
+extern int show_combined_diff(struct combine_diff_path *elem, int num_parent,
+                             int dense, const char *header,
+                             struct diff_options *);
 
-extern int diff_tree_combined_merge(const unsigned char *sha1, const char *, int, int);
+extern const char *diff_tree_combined_merge(const unsigned char *sha1, const char *, int, struct diff_options *opt);
 
 extern void diff_addremove(struct diff_options *,
                           int addremove,