Merge branch 'ew/svn'
[gitweb.git] / diffcore.h
index 2249bc2c05744ce5026744547fcb30195a19b3f1..0c8abb5b94dc07769e5cd2603988dad6e6869bb7 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * Copyright (C) 2005 Junio C Hamano
  */
-#ifndef _DIFFCORE_H_
-#define _DIFFCORE_H_
+#ifndef DIFFCORE_H
+#define DIFFCORE_H
 
 /* This header file is internal between diff.c and its diff transformers
  * (e.g. diffcore-rename, diffcore-pickaxe).  Never include this header
@@ -37,6 +37,7 @@ struct diff_filespec {
 #define DIFF_FILE_VALID(spec) (((spec)->mode) != 0)
        unsigned should_free : 1; /* data should be free()'ed */
        unsigned should_munmap : 1; /* data should be munmap()'ed */
+       unsigned is_binary : 1; /* data should be considered "binary" */
 };
 
 extern struct diff_filespec *alloc_filespec(const char *);
@@ -54,9 +55,9 @@ struct diff_filepair {
        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) ((p)->renamed_pair)
 
@@ -103,8 +104,8 @@ void diff_debug_queue(const char *, struct diff_queue_struct *);
 #define diff_debug_queue(a,b) do {} while(0)
 #endif
 
-extern int diffcore_count_changes(void *src, unsigned long src_size,
-                                 void *dst, unsigned long dst_size,
+extern int diffcore_count_changes(struct diff_filespec *src,
+                                 struct diff_filespec *dst,
                                  void **src_count_p,
                                  void **dst_count_p,
                                  unsigned long delta_limit,