On Mon, 16 Aug 2010 09:58:26 +0200, Raphael Hertzog wrote:

> Coming back to the topic, I think you can draft a patch that works
> instead.

Thanks for taking the time to look into this issue!
 
> -  defined($rv) or return;
> +  defined($rv->[0]) or return "";
> 
> This changes is wrong. if $rv is not defined, we want an undef value.
> Otherwise you get "" for a value that doesn't exist in the config file...
> that's what breaks publican IMO.

Right.
 
> You might want a supplementary test however:
> return "" if scalar(@$rv) == 0;
> 
> If the array is empty, we return an empty string.

Looks good.
  
>    for ( my $i=0; $i < @$rv; $i++ ) {
>      $rv->[$i] =~ s/\\n/\n/g;
>    }  
> -  return @$rv==1 ? $rv->[0] : (wantarray ? @$rv : $rv);
> +  return @$rv<=1 ? $rv->[0] : (wantarray ? @$rv : $rv);
> 
> If you stop above on an empty array, then this change is not needed IMO.

Ack.


I've now replaced the old patch with your proposal [0], and both the test
suite and the test.pl from #365190 pass with it.

Tony, what do you think about that? (Committed in svn)


Cheers,
gregor 


[0]
http://dorf.mancill.com/websvn/filedetails.php?repname=deb&path=%2Flibconfig-simple-perl%2Ftrunk%2Fdebian%2Fpatches%2Fempty_string.patch

-- 
 .''`.   http://info.comodo.priv.at/ -- GPG key IDs: 0x8649AA06, 0x00F3CFE4
 : :' :  Debian GNU/Linux user, admin, & developer - http://www.debian.org/
 `. `'   Member of VIBE!AT & SPI, fellow of Free Software Foundation Europe
   `-    NP: Tom Waits: Goin Out West

Attachment: signature.asc
Description: Digital signature

Reply via email to