Web lists-archives.com

Re: [PATCH] git-svn: avoid warning on undef readline()




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/86h8oobl36.fsf@xxxxxxxxxxx/ for the
> original report.
> 
> Reported-by: Joseph Mingrone <jrm@xxxxxxx>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx>
> ---
>  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