1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-18 18:59:38 +02:00

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>
This commit is contained in:
Jeff King 2017-06-21 15:28:59 -04:00 committed by Junio C Hamano
parent d5addcf522
commit d85d7ecb80
2 changed files with 9 additions and 1 deletions

View File

@ -1097,7 +1097,7 @@ sub edit_hunk_manually {
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;

View File

@ -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