Refactor parse_loc
commit25ed3412f86b136efb17689b6712d9e546cac388
authorBo Yang <struggleyb.nku@gmail.com>
Thu, 28 Mar 2013 16:47:30 +0000 (28 17:47 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Mar 2013 17:28:41 +0000 (28 10:28 -0700)
treefdb5d94dcd935ce30be00a616ff1619752421179
parent443d803e0dacd0a1c6700503689f3cd95751aba1
Refactor parse_loc

We want to use the same style of -L n,m argument for 'git log -L' as
for git-blame.  Refactor the argument parsing of the range arguments
from builtin/blame.c to the (new) file that will hold the 'git log -L'
logic.

To accommodate different data structures in blame and log -L, the file
contents are abstracted away; parse_range_arg takes a callback that it
uses to get the contents of a line of the (notional) file.

The new test is for a case that made me pause during debugging: the
'blame -L with invalid end' test was the only one that noticed an
outright failure to parse the end *at all*.  So make a more explicit
test for that.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/blame-options.txt
Documentation/line-range-format.txt [new file with mode: 0644]
Makefile
builtin/blame.c
line-range.c [new file with mode: 0644]
line-range.h [new file with mode: 0644]
t/t8003-blame-corner-cases.sh