[PATCH] diff: code clean-up and removal of rename hack.
[git.git] / diffcore.h
index 0f82bd9..032902a 100644 (file)
@@ -33,18 +33,21 @@ extern struct diff_filespec *alloc_filespec(const char *);
 extern void fill_filespec(struct diff_filespec *, const unsigned char *,
                          unsigned short);
 
-extern int diff_populate_filespec(struct diff_filespec *);
+extern int diff_populate_filespec(struct diff_filespec *, int);
 extern void diff_free_filespec_data(struct diff_filespec *);
 
 struct diff_filepair {
        struct diff_filespec *one;
        struct diff_filespec *two;
-       int score; /* only valid when one and two are different paths */
-       int status; /* M C R N D U (see Documentation/diff-format.txt) */
+       unsigned short int score;
+       char source_stays; /* all of R/C are copies */
+       char status; /* M C R N D U (see Documentation/diff-format.txt) */
 };
 #define DIFF_PAIR_UNMERGED(p) \
        (!DIFF_FILE_VALID((p)->one) && !DIFF_FILE_VALID((p)->two))
 
+#define DIFF_PAIR_RENAME(p) (strcmp((p)->one->path, (p)->two->path))
+
 #define DIFF_PAIR_TYPE_CHANGED(p) \
        ((S_IFMT & (p)->one->mode) != (S_IFMT & (p)->two->mode))
 
@@ -70,9 +73,6 @@ extern struct diff_filepair *diff_queue(struct diff_queue_struct *,
                                        struct diff_filespec *);
 extern void diff_q(struct diff_queue_struct *, struct diff_filepair *);
 
-extern int diff_needs_to_stay(struct diff_queue_struct *, int,
-                             struct diff_filespec *);
-
 #define DIFF_DEBUG 0
 #if DIFF_DEBUG
 void diff_debug_filespec(struct diff_filespec *, int, const char *);