9 /* A range [start,end]. Lines are numbered starting at 0, and the
10 * ranges include start but exclude end. */
15 /* A set of ranges. The ranges must always be disjoint and sorted. */
21 /* A diff, encoded as the set of pre- and post-image ranges where the
22 * files differ. A pair of ranges corresponds to a hunk. */
24 struct range_set parent
;
25 struct range_set target
;
28 /* Linked list of interesting files and their associated ranges. The
29 * list must be kept sorted by spec->path */
30 struct line_log_data
{
31 struct line_log_data
*next
;
32 struct diff_filespec
*spec
;
34 struct range_set ranges
;
35 int arg_alloc
, arg_nr
;
37 struct diff_filepair
*pair
;
38 struct diff_ranges diff
;
41 extern void line_log_data_init(struct line_log_data
*r
);
43 extern void line_log_init(struct rev_info
*rev
, const char *prefix
, struct string_list
*args
);
45 extern int line_log_filter(struct rev_info
*rev
);
47 extern int line_log_print(struct rev_info
*rev
, struct commit
*commit
);
49 #endif /* LINE_LOG_H */