diff options
author | Jeff King <peff@peff.net> | 2017-06-21 22:28:59 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-22 00:06:20 +0300 |
commit | d85d7ecb80ebc93f7380b4196c303756ee051668 (patch) | |
tree | e6d3a487d649072ded75b3141c9152664d7fdd3b | |
parent | d5addcf522deb05d259ecbc0946584d977879565 (diff) |
add--interactive: quote commentChar regex
Since c9d961647 (i18n: add--interactive: mark
edit_hunk_manually message for translation, 2016-12-14),
when the user asks to edit a hunk manually, we respect
core.commentChar in generating the edit instructions.
However, when we then strip out comment lines, we use a
simple regex like:
/^$commentChar/
If your chosen comment character is a regex metacharacter,
then that will behave in a confusing manner ("$", for
instance, would only eliminate blank lines, not actual
comment lines).
We can fix that by telling perl not to respect
metacharacters.
Reported-by: Christian Rösch <christian@croesch.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-add--interactive.perl | 2 | ||||
-rwxr-xr-x | t/t3701-add-interactive.sh | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 7c95324737..395dd5eb4b 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -1097,7 +1097,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; diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index deae948c76..2bfd41f06e 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -380,4 +380,12 @@ test_expect_success 'patch mode ignores unmerged entries' ' test_cmp expected diff ' +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 |