diff_helpers.h 1.3 KB
Newer Older
1
#include "fileops.h"
2
#include "git2/diff.h"
3 4 5

extern git_tree *resolve_commit_oid_to_tree(
	git_repository *repo, const char *partial_oid);
6 7 8

typedef struct {
	int files;
9 10
	int files_binary;

11
	int file_status[10]; /* indexed by git_delta_t value */
12 13 14 15 16 17 18 19 20

	int hunks;
	int hunk_new_lines;
	int hunk_old_lines;

	int lines;
	int line_ctxt;
	int line_adds;
	int line_dels;
21 22 23 24 25 26 27

	/* optional arrays of expected specific values */
	const char **names;
	int *statuses;

	int debug;

28 29
} diff_expects;

30 31 32 33 34
typedef struct {
	const char *path;
	const char *matched_pathspec;
} notify_expected;

Vicent Marti committed
35
extern int diff_file_cb(
36
	const git_diff_delta *delta,
37 38
	float progress,
	void *cb_data);
39

40 41 42 43 44
extern int diff_print_file_cb(
	const git_diff_delta *delta,
	float progress,
	void *cb_data);

Vicent Marti committed
45
extern int diff_hunk_cb(
46 47
	const git_diff_delta *delta,
	const git_diff_range *range,
48
	const char *header,
49 50
	size_t header_len,
	void *cb_data);
51

Vicent Marti committed
52
extern int diff_line_cb(
53 54
	const git_diff_delta *delta,
	const git_diff_range *range,
55 56
	char line_origin,
	const char *content,
57 58
	size_t content_len,
	void *cb_data);
59

Russell Belfer committed
60 61
extern int diff_foreach_via_iterator(
	git_diff_list *diff,
Vicent Marti committed
62 63
	git_diff_file_cb file_cb,
	git_diff_hunk_cb hunk_cb,
64 65
	git_diff_data_cb line_cb,
	void *data);
66 67

extern void diff_print(FILE *fp, git_diff_list *diff);
68
extern void diff_print_raw(FILE *fp, git_diff_list *diff);