summaryrefslogtreecommitdiff
path: root/line-log.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-09-09 14:35:11 -0700
committerJunio C Hamano <gitster@pobox.com>2013-09-09 14:35:11 -0700
commitde9a25354aa22aa6796787f3ef3af276fba82339 (patch)
tree9cfa7f20323b853773576582322b4d209f40e93e /line-log.h
parent4ab4a6dfb414230bb3e13ba65a1aa2606c6102f3 (diff)
parent5ce922a014f78684a96c3d03a51decf0d21fa58d (diff)
downloadgit-de9a25354aa22aa6796787f3ef3af276fba82339.tar.gz
Merge branch 'es/blame-L-twice'
Teaches "git blame" to take more than one -L ranges. * es/blame-L-twice: line-range: reject -L line numbers less than 1 t8001/t8002: blame: add tests of -L line numbers less than 1 line-range: teach -L^:RE to search from start of file line-range: teach -L:RE to search from end of previous -L range line-range: teach -L^/RE/ to search from start of file line-range-format.txt: document -L/RE/ relative search log: teach -L/RE/ to search from end of previous -L range blame: teach -L/RE/ to search from end of previous -L range line-range: teach -L/RE/ to search relative to anchor point blame: document multiple -L support t8001/t8002: blame: add tests of multiple -L options blame: accept multiple -L ranges blame: inline one-line function into its lone caller range-set: publish API for re-use by git-blame -L line-range-format.txt: clarify -L:regex usage form git-log.txt: place each -L option variation on its own line
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 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.
*