2 * Copyright (C) the libgit2 contributors. All rights reserved.
4 * This file is part of libgit2, distributed under the GNU GPL v2 with
5 * a Linking Exception. For full terms see the included COPYING file.
7 #ifndef INCLUDE_diff_h__
8 #define INCLUDE_diff_h__
12 #include "git2/diff.h"
13 #include "git2/patch.h"
14 #include "git2/sys/diff.h"
21 #include "repository.h"
25 #define DIFF_OLD_PREFIX_DEFAULT "a/"
26 #define DIFF_NEW_PREFIX_DEFAULT "b/"
29 GIT_DIFF_TYPE_UNKNOWN
= 0,
30 GIT_DIFF_TYPE_GENERATED
= 1,
31 GIT_DIFF_TYPE_PARSED
= 2,
37 git_attr_session attrsession
;
38 git_diff_origin_t type
;
39 git_diff_options opts
;
40 git_vector deltas
; /* vector of git_diff_delta */
42 git_iterator_t old_src
;
43 git_iterator_t new_src
;
44 git_diff_perfdata perf
;
46 int (*strcomp
)(const char *, const char *);
47 int (*strncomp
)(const char *, const char *, size_t);
48 int (*pfxcomp
)(const char *str
, const char *pfx
);
49 int (*entrycomp
)(const void *a
, const void *b
);
51 int (*patch_fn
)(git_patch
**out
, git_diff
*diff
, size_t idx
);
52 void (*free_fn
)(git_diff
*diff
);
55 extern int git_diff_delta__format_file_header(
57 const git_diff_delta
*delta
,
63 extern int git_diff_delta__cmp(const void *a
, const void *b
);
64 extern int git_diff_delta__casecmp(const void *a
, const void *b
);
66 extern int git_diff__entry_cmp(const void *a
, const void *b
);
67 extern int git_diff__entry_icmp(const void *a
, const void *b
);