diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2013-08-06 09:59:42 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-08-06 14:44:25 -0700 |
commit | 52f4d1264854485bfd50afeeed1933a3f9e05c96 (patch) | |
tree | 1ed9e978bd06fc744a0b97f324cf27e191121535 /builtin | |
parent | line-range: teach -L/RE/ to search relative to anchor point (diff) | |
download | tgif-52f4d1264854485bfd50afeeed1933a3f9e05c96.tar.xz |
blame: teach -L/RE/ to search from end of previous -L range
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/blame.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/builtin/blame.c b/builtin/blame.c index 7b084d8445..1bf8056f6b 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -2280,6 +2280,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix) int cmd_is_annotate = !strcmp(argv[0], "annotate"); struct range_set ranges; unsigned int range_i; + long anchor; git_config(git_blame_config, NULL); init_revisions(&revs, NULL); @@ -2475,11 +2476,12 @@ parse_done: if (lno && !range_list.nr) string_list_append(&range_list, xstrdup("1")); + anchor = 1; range_set_init(&ranges, range_list.nr); for (range_i = 0; range_i < range_list.nr; ++range_i) { long bottom, top; if (parse_range_arg(range_list.items[range_i].string, - nth_line_cb, &sb, lno, 1, + nth_line_cb, &sb, lno, anchor, &bottom, &top, sb.path)) usage(blame_usage); if (lno < top || ((lno || bottom) && lno < bottom)) @@ -2490,6 +2492,7 @@ parse_done: top = lno; bottom--; range_set_append_unsafe(&ranges, bottom, top); + anchor = top + 1; } sort_and_merge_range_set(&ranges); |