blob: 94172774ae27e61be2558a0179899b5c2fbc8dc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * The side by side diff view, which ui-diff.c renders through when a reader
 * asks for that layout rather than the unified one. Every call below is made
 * as ui-diff.c walks a diff, so nothing here is a page of its own.
 */

#ifndef CGIT_UI_SSDIFF_H
#define CGIT_UI_SSDIFF_H

// The longest old line and the longest new line the view will compare
// character by character. The comparison fills a cell for every pair of
// characters, so its cost is the product of the two, and a line past the limit
// is shown whole instead.
#ifndef MAX_SSDIFF_M
#define MAX_SSDIFF_M 128
#endif

#ifndef MAX_SSDIFF_N
#define MAX_SSDIFF_N 128
#endif
#define MAX_SSDIFF_SIZE ((MAX_SSDIFF_M) * (MAX_SSDIFF_N))

extern void cgit_ssdiff_line_cb(char *line, int len);

/*
 * Open the group of rows one file's diff occupies, header row included, and
 * close it again after the last line. path lands on the group as data-path.
 */
extern void cgit_ssdiff_header_begin(const char *path);
extern void cgit_ssdiff_header_end(void);
extern void cgit_ssdiff_footer(void);

#endif // CGIT_UI_SSDIFF_H