A Sex, 09-12-2016 às 14:23 -0800, Junio C Hamano escreveu: > > This is exactly the same issue I fixed for rebase -i recently. > > Yes, but the patch we see here punts "core.commentChar is not a > single-byte single-letter--panic!" case differently. I think you > did "just take the first one" in "rebase -i", which I think is more > in line with the rest of the system, and this addition to Git.pm > should do the same, I think. I hope the changes below are in line with the rest of the system. If so, I will send a new re-roll with them. I wonder why this is important when Git errors out when core.commentChar is set to more than 1 characters or 0 characters. Is it just to be consistent with "rebase -i" changes introduced by Johannes Schindelin? I am not sure what does "if (length($comment_line_char) != 1)" check. Whether it checks single-byte or single-letter or both... -- >8 -- diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 3a6d846..4e0ab5a 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -1072,7 +1072,7 @@ sub edit_hunk_manually { print $fh @$oldtext; my $is_reverse = $patch_mode_flavour{IS_REVERSE}; my ($remove_plus, $remove_minus) = $is_reverse ? ('-', '+') : ('+', '-'); - my $comment_line_char = Git::config("core.commentchar") || '#'; + my $comment_line_char = Git::get_comment_line_char; print $fh Git::comment_lines sprintf(__ <<EOF, $remove_minus, $remove_plus, $comment_line_char), --- To remove '%s' lines, make them ' ' lines (context). diff --git a/perl/Git.pm b/perl/Git.pm index 69cd1dd..3211650 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -1451,6 +1451,23 @@ sub prefix_lines { return $string; } +=item get_comment_line_char ( ) + +Gets the core.commentchar configuration value. +The value falls-back to # if core.commentchar is set to 'auto'. + +=cut + +sub get_comment_line_char { + my $comment_line_char = config("core.commentchar") || '#'; + $comment_line_char = '#' if ($comment_line_char eq 'auto'); + if (length($comment_line_char) != 1) { + # use first character + $comment_line_char = substr($comment_line_char, 0, 1); + } + return $comment_line_char; +} + =item comment_lines ( STRING [, STRING... ]) Comments lines following core.commentchar configuration. @@ -1458,7 +1475,7 @@ Comments lines following core.commentchar configuration. =cut sub comment_lines { - my $comment_line_char = config("core.commentchar") || '#'; + my $comment_line_char = get_comment_line_char; return prefix_lines("$comment_line_char ", @_); }