diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-09-09 14:35:11 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-09-09 14:35:11 -0700 |
commit | de9a25354aa22aa6796787f3ef3af276fba82339 (patch) | |
tree | 9cfa7f20323b853773576582322b4d209f40e93e /line-log.h | |
parent | 4ab4a6dfb414230bb3e13ba65a1aa2606c6102f3 (diff) | |
parent | 5ce922a014f78684a96c3d03a51decf0d21fa58d (diff) | |
download | git-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.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. * |