Hi Ævar,
On Fri, 6 Apr 2018, Ævar Arnfjörð Bjarmason wrote:
> Change code in Git.pm that sometimes calls chomp() on undef to only do
> so the value is defined.
>
> This code has been chomping undef values ever since it was added in
> b26098fc2f ("git-svn: reduce scope of input record separator change",
> 2016-10-14), but started warning due to the introduction of "use
> warnings" to Git.pm in my f0e19cb7ce ("Git.pm: add the "use warnings"
> pragma", 2018-02-25) released with 2.17.0.
>
> Since this function will return undef in those cases it's still
> possible that the code using it will warn if it does a chomp of its
> own, as the code added in b26098fc2f ("git-svn: reduce scope of input
> record separator change", 2016-10-14) might do, but since git-svn has
> "use warnings" already that's clearly not a codepath that's going to
> warn.
>
> See https://public-inbox.org/git/[email protected]/ for the
> original report.
>
> Reported-by: Joseph Mingrone <[email protected]>
> Signed-off-by: Ævar Arnfjörð Bjarmason <[email protected]>
> ---
> perl/Git.pm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/perl/Git.pm b/perl/Git.pm
> index 16ebcc612c..6b6079c456 100644
> --- a/perl/Git.pm
> +++ b/perl/Git.pm
> @@ -554,7 +554,7 @@ sub get_record {
> my ($fh, $rs) = @_;
> local $/ = $rs;
> my $rec = <$fh>;
> - chomp $rec if defined $rs;
> + chomp $rec if defined $rs and defined $rec;
> $rec;
> }
The explanation as well as the patch make a total lot of sense to me.
Ciao,
Dscho