From 849e43cc18a8aef639b92c5df9b66af3eb983b2a Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 16 Jan 2020 08:33:07 +0000 Subject: built-in add -i: accept open-ended ranges again The interactive `add` command allows selecting multiple files for some of its sub-commands, via unique prefixes, indices or index ranges. When re-implementing `git add -i` in C, we even added a code comment talking about ranges with a missing end index, such as `2-`, but the code did not actually accept those, as pointed out in https://github.com/git-for-windows/git/issues/2466#issuecomment-574142760. Let's fix this, and add a test case to verify that this stays fixed forever. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- add-interactive.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'add-interactive.c') diff --git a/add-interactive.c b/add-interactive.c index 14d4688c26..396066e724 100644 --- a/add-interactive.c +++ b/add-interactive.c @@ -328,7 +328,10 @@ static ssize_t list_and_choose(struct add_i_state *s, if (endp == p + sep) to = from + 1; else if (*endp == '-') { - to = strtoul(++endp, &endp, 10); + if (isdigit(*(++endp))) + to = strtoul(endp, &endp, 10); + else + to = items->items.nr; /* extra characters after the range? */ if (endp != p + sep) from = -1; -- cgit v1.2.3