git-svn: pass an unambiguous ref to rev-list when grafting-branches
[gitweb.git] / diffcore.h
index d31b3b476c0fc25a85b483b3d1d04b2d36bc6481..1ea80671e30500f95fc1b648ccc6d5143ac0ac52 100644 (file)
@@ -26,6 +26,7 @@ struct diff_filespec {
        unsigned char sha1[20];
        char *path;
        void *data;
+       void *cnt_data;
        unsigned long size;
        int xfrm_flags;          /* for use by the xfrm */
        unsigned short mode;     /* file mode */
@@ -52,11 +53,12 @@ struct diff_filepair {
        char status; /* M C R N D U (see Documentation/diff-format.txt) */
        unsigned source_stays : 1; /* all of R/C are copies */
        unsigned broken_pair : 1;
+       unsigned renamed_pair : 1;
+       unsigned is_unmerged : 1;
 };
-#define DIFF_PAIR_UNMERGED(p) \
-       (!DIFF_FILE_VALID((p)->one) && !DIFF_FILE_VALID((p)->two))
+#define DIFF_PAIR_UNMERGED(p) ((p)->is_unmerged)
 
-#define DIFF_PAIR_RENAME(p) (strcmp((p)->one->path, (p)->two->path))
+#define DIFF_PAIR_RENAME(p) ((p)->renamed_pair)
 
 #define DIFF_PAIR_BROKEN(p) \
        ( (!DIFF_FILE_VALID((p)->one) != !DIFF_FILE_VALID((p)->two)) && \
@@ -103,6 +105,8 @@ void diff_debug_queue(const char *, struct diff_queue_struct *);
 
 extern int diffcore_count_changes(void *src, unsigned long src_size,
                                  void *dst, unsigned long dst_size,
+                                 void **src_count_p,
+                                 void **dst_count_p,
                                  unsigned long delta_limit,
                                  unsigned long *src_copied,
                                  unsigned long *literal_added);