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:
parent
d5addcf522
commit
d85d7ecb80
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user