travis-ci: switch to Xcode 10.1 macOS image
[gitweb.git] / line-log.h
index 8bea45fd78f0368fef373be080ea5fa77d428c7f..e2a5ee7c6d077df353a20d2d55d8b4fc24642bc3 100644 (file)
@@ -14,7 +14,7 @@ struct range {
 
 /* A set of ranges.  The ranges must always be disjoint and sorted. */
 struct range_set {
-       int alloc, nr;
+       unsigned int alloc, nr;
        struct range *ranges;
 };
 
@@ -25,6 +25,18 @@ struct diff_ranges {
        struct range_set target;
 };
 
+extern void range_set_init(struct range_set *, size_t prealloc);
+extern void range_set_release(struct range_set *);
+/* Range includes start; excludes end */
+extern void range_set_append_unsafe(struct range_set *, long start, long end);
+/* New range must begin at or after end of last added range */
+extern void range_set_append(struct range_set *, long start, long end);
+/*
+ * In-place pass of sorting and merging the ranges in the range set,
+ * to sort and make the ranges disjoint.
+ */
+extern void sort_and_merge_range_set(struct range_set *);
+
 /* Linked list of interesting files and their associated ranges.  The
  * list must be kept sorted by path.
  *
@@ -42,8 +54,6 @@ struct line_log_data {
        struct diff_ranges diff;
 };
 
-extern void line_log_data_init(struct line_log_data *r);
-
 extern void line_log_init(struct rev_info *rev, const char *prefix, struct string_list *args);
 
 extern int line_log_filter(struct rev_info *rev);