summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Sunshine <sunshine@sunshineco.com>2013-07-31 04:15:45 -0400
committerJunio C Hamano <gitster@pobox.com>2013-08-05 11:54:32 -0700
commit5d57cac6ae7c661d430dcc7dd2e44c994bf797be (patch)
tree96f4ff8a5bbeba74d42a5ec4619782acedfd82f0
parent82cd7e5d3e56c173769bc5fba91e0c6415e208f0 (diff)
downloadgit-5d57cac6ae7c661d430dcc7dd2e44c994bf797be.tar.gz
blame: reject empty ranges -L,+0 and -L,-0es/blame-L-more
Empty ranges -L,+0 and -L,-0 are nonsensical in the context of blame yet they are accepted (in fact, both are interpreted as -L1,Y where Y is end-of-file). Report them as invalid. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--line-range.c2
-rw-r--r--t/annotate-tests.sh4
2 files changed, 3 insertions, 3 deletions
diff --git a/line-range.c b/line-range.c
index a816951e06..69e8d6b6c0 100644
--- a/line-range.c
+++ b/line-range.c
@@ -21,7 +21,7 @@ static const char *parse_loc(const char *spec, nth_line_fn_t nth_line,
* for 20 lines, or "-L <something>,-5" for 5 lines ending at
* <something>.
*/
- if (1 < begin && (spec[0] == '+' || spec[0] == '-')) {
+ if (1 <= begin && (spec[0] == '+' || spec[0] == '-')) {
num = strtol(spec + 1, &term, 10);
if (term != spec + 1) {
if (!ret)
diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh
index aca87e822a..ce5b8ed304 100644
--- a/t/annotate-tests.sh
+++ b/t/annotate-tests.sh
@@ -185,7 +185,7 @@ test_expect_success 'blame -L Y,X (undocumented)' '
check_count -L6,3 B 1 B1 1 B2 1 D 1
'
-test_expect_failure 'blame -L ,+0' '
+test_expect_success 'blame -L ,+0' '
test_must_fail $PROG -L,+0 file
'
@@ -201,7 +201,7 @@ test_expect_success 'blame -L X,+N' '
check_count -L3,+4 B 1 B1 1 B2 1 D 1
'
-test_expect_failure 'blame -L ,-0' '
+test_expect_success 'blame -L ,-0' '
test_must_fail $PROG -L,-0 file
'