summaryrefslogtreecommitdiff
path: root/line-log.h
diff options
context:
space:
mode:
authorEric Sunshine <sunshine@sunshineco.com>2013-08-06 13:59:36 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-08-06 21:27:20 (GMT)
commitc0babbe6953a8a085f270e98e9a94d2a6f3a381b (patch)
treed5cf75cbf4a2c9b709235695af509e916a1df879 /line-log.h
parent0ddd47193c225a9f7a658682d4e859771b45ab84 (diff)
downloadgit-c0babbe6953a8a085f270e98e9a94d2a6f3a381b.zip
git-c0babbe6953a8a085f270e98e9a94d2a6f3a381b.tar.gz
git-c0babbe6953a8a085f270e98e9a94d2a6f3a381b.tar.bz2
range-set: publish API for re-use by git-blame -L
git-blame is slated to accept multiple -L ranges. git-log already accepts multiple -L's but its implementation of range-set, which organizes and normalizes -L ranges, is private. Publish the small subset of range-set API which is needed for git-blame multiple -L support. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'line-log.h')
-rw-r--r--line-log.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/line-log.h b/line-log.h
index 8bea45f..a9212d8 100644
--- a/line-log.h
+++ b/line-log.h
@@ -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.
*