Skip to content

Commit

Permalink
Merge pull request #2472 from dscho/builtin-add-i-fixes
Browse files Browse the repository at this point in the history
Two fixes for the built-in `git add -i`
  • Loading branch information
dscho authored and Git for Windows Build Agent committed Jan 17, 2020
2 parents a9d595b + 3e4036f commit ff5e1f5
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
9 changes: 6 additions & 3 deletions add-interactive.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,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;
Expand Down Expand Up @@ -931,7 +934,7 @@ static int run_patch(struct add_i_state *s, const struct pathspec *ps,

opts->prompt = N_("Patch update");
count = list_and_choose(s, files, opts);
if (count >= 0) {
if (count > 0) {
struct argv_array args = ARGV_ARRAY_INIT;
struct pathspec ps_selected = { 0 };

Expand Down Expand Up @@ -972,7 +975,7 @@ static int run_diff(struct add_i_state *s, const struct pathspec *ps,
opts->flags = IMMEDIATE;
count = list_and_choose(s, files, opts);
opts->flags = 0;
if (count >= 0) {
if (count > 0) {
struct argv_array args = ARGV_ARRAY_INIT;

argv_array_pushl(&args, "git", "diff", "-p", "--cached",
Expand Down
9 changes: 9 additions & 0 deletions t/t3701-add-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@ test_expect_success 'revert works (initial)' '
! grep . output
'

test_expect_success 'add untracked (multiple)' '
test_when_finished "git reset && rm [1-9]" &&
touch $(test_seq 9) &&
test_write_lines a "2-5 8-" | git add -i -- [1-9] &&
test_write_lines 2 3 4 5 8 9 >expected &&
git ls-files [1-9] >output &&
test_cmp expected output
'

test_expect_success 'setup (commit)' '
echo baseline >file &&
git add file &&
Expand Down

0 comments on commit ff5e1f5

Please sign in to comment.