diff options
Diffstat (limited to 'diffcore.h')
| -rw-r--r-- | diffcore.h | 35 | 
1 files changed, 25 insertions, 10 deletions
| diff --git a/diffcore.h b/diffcore.h index eef17c4ca2..be0739c5c4 100644 --- a/diffcore.h +++ b/diffcore.h @@ -18,10 +18,12 @@  #define MAX_SCORE 60000.0  #define DEFAULT_RENAME_SCORE 30000 /* rename/copy similarity minimum (50%) */  #define DEFAULT_BREAK_SCORE  30000 /* minimum for break to happen (50%) */ -#define DEFAULT_MERGE_SCORE  36000 /* maximum for break-merge to happen 60%) */ +#define DEFAULT_MERGE_SCORE  36000 /* maximum for break-merge to happen (60%) */  #define MINIMUM_BREAK_SIZE     400 /* do not break a file smaller than this */ +struct userdiff_driver; +  struct diff_filespec {  	unsigned char sha1[20];  	char *path; @@ -29,7 +31,9 @@ struct diff_filespec {  	void *cnt_data;  	const char *funcname_pattern_ident;  	unsigned long size; +	int count;               /* Reference count */  	int xfrm_flags;		 /* for use by the xfrm */ +	int rename_used;         /* Count of rename users */  	unsigned short mode;	 /* file mode */  	unsigned sha1_valid : 1; /* if true, use sha1 and trust mode;  				  * if false, use the name and read from @@ -38,24 +42,31 @@ 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 checked_attr : 1; -	unsigned is_binary : 1; /* data should be considered "binary" */ +	unsigned dirty_submodule : 2;  /* For submodules: its work tree is dirty */ +	unsigned is_stdin : 1; +#define DIRTY_SUBMODULE_UNTRACKED 1 +#define DIRTY_SUBMODULE_MODIFIED  2 +	unsigned has_more_entries : 1; /* only appear in combined diff */ +	struct userdiff_driver *driver; +	/* data should be considered "binary"; -1 means "don't know yet" */ +	int is_binary;  };  extern struct diff_filespec *alloc_filespec(const char *); +extern void free_filespec(struct diff_filespec *);  extern void fill_filespec(struct diff_filespec *, const unsigned char *,  			  unsigned short);  extern int diff_populate_filespec(struct diff_filespec *, int);  extern void diff_free_filespec_data(struct diff_filespec *); +extern void diff_free_filespec_blob(struct diff_filespec *);  extern int diff_filespec_is_binary(struct diff_filespec *);  struct diff_filepair {  	struct diff_filespec *one;  	struct diff_filespec *two;  	unsigned short int score; -	char status; /* M C R N D U (see Documentation/diff-format.txt) */ -	unsigned source_stays : 1; /* all of R/C are copies */ +	char status; /* M C R A D U etc. (see Documentation/diff-format.txt or DIFF_STATUS_* in diff.h) */  	unsigned broken_pair : 1;  	unsigned renamed_pair : 1;  	unsigned is_unmerged : 1; @@ -82,6 +93,11 @@ struct diff_queue_struct {  	int alloc;  	int nr;  }; +#define DIFF_QUEUE_CLEAR(q) \ +	do { \ +		(q)->queue = NULL; \ +		(q)->nr = (q)->alloc = 0; \ +	} while (0)  extern struct diff_queue_struct diff_queued_diff;  extern struct diff_filepair *diff_queue(struct diff_queue_struct *, @@ -89,11 +105,10 @@ 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 void diffcore_pathspec(const char **pathspec);  extern void diffcore_break(int);  extern void diffcore_rename(struct diff_options *);  extern void diffcore_merge_broken(void); -extern void diffcore_pickaxe(const char *needle, int opts); +extern void diffcore_pickaxe(struct diff_options *);  extern void diffcore_order(const char *orderfile);  #define DIFF_DEBUG 0 @@ -102,9 +117,9 @@ void diff_debug_filespec(struct diff_filespec *, int, const char *);  void diff_debug_filepair(const struct diff_filepair *, int);  void diff_debug_queue(const char *, struct diff_queue_struct *);  #else -#define diff_debug_filespec(a,b,c) do {} while(0) -#define diff_debug_filepair(a,b) do {} while(0) -#define diff_debug_queue(a,b) do {} while(0) +#define diff_debug_filespec(a,b,c) do { /* nothing */ } while (0) +#define diff_debug_filepair(a,b) do { /* nothing */ } while (0) +#define diff_debug_queue(a,b) do { /* nothing */ } while (0)  #endif  extern int diffcore_count_changes(struct diff_filespec *src, | 
