diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2013-08-06 09:59:36 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-08-06 14:27:20 -0700 |
commit | c0babbe6953a8a085f270e98e9a94d2a6f3a381b (patch) | |
tree | d5cf75cbf4a2c9b709235695af509e916a1df879 /line-log.h | |
parent | 0ddd47193c225a9f7a658682d4e859771b45ab84 (diff) | |
download | git-c0babbe6953a8a085f270e98e9a94d2a6f3a381b.tar.gz |
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.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/line-log.h b/line-log.h index 8bea45fd78..a9212d84e4 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. * |