diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-07-10 13:58:58 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-07-10 13:58:59 -0700 |
commit | f904494574035f6ff2725b0e97951c55ccd9dee3 (patch) | |
tree | 4ce9cb8c57fb75f437d1a557d2dc94cac4d9692b | |
parent | 040746c061c1138222d7db1f9ace292ef1a0935d (diff) | |
parent | d85d7ecb80ebc93f7380b4196c303756ee051668 (diff) | |
download | git-f904494574035f6ff2725b0e97951c55ccd9dee3.tar.gz git-f904494574035f6ff2725b0e97951c55ccd9dee3.tar.xz |
Merge branch 'jk/add-p-commentchar-fix' into maint
"git add -p" were updated in 2.12 timeframe to cope with custom
core.commentchar but the implementation was buggy and a
metacharacter like $ and * did not work.
* jk/add-p-commentchar-fix:
add--interactive: quote commentChar regex
add--interactive: handle EOF in prompt_yesno
-rwxr-xr-x | git-add--interactive.perl | 3 | ||||
-rwxr-xr-x | t/t3701-add-interactive.sh | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 709a5f6ce..c55c61245 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -1085,7 +1085,7 @@ EOF2 open $fh, '<', $hunkfile or die sprintf(__("failed to open hunk edit file for reading: %s"), $!); - my @newtext = grep { !/^$comment_line_char/ } <$fh>; + my @newtext = grep { !/^\Q$comment_line_char\E/ } <$fh>; close $fh; unlink $hunkfile; @@ -1140,6 +1140,7 @@ sub prompt_yesno { while (1) { print colored $prompt_color, $prompt; my $line = prompt_single_character; + return undef unless defined $line; return 0 if $line =~ /^n/i; return 1 if $line =~ /^y/i; } diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index 2ecb43a61..2f3e7cea6 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -477,4 +477,12 @@ test_expect_success 'add -p does not expand argument lists' ' ! grep not-changed trace.out ' +test_expect_success 'hunk-editing handles custom comment char' ' + git reset --hard && + echo change >>file && + test_config core.commentChar "\$" && + echo e | GIT_EDITOR=true git add -p && + git diff --exit-code +' + test_done |