On Mon, 31 Aug 2015 22:47:41 +0100, Dominic Hargreaves wrote:

> > Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at 
> > /«PKG
> > BUILDDIR»/versions/frame.pl line 357.
> 
> It looks like perl's suggestion to omit defined may be wrong here, since
> the code seems nonsensical, since $colorset is set to a scalar, and then
> treated as an arrayref:
> 
> sub check_frame_colorset {
> [...]
>     local($colorset);
>     if ($reverse == 0) {$colorset="${which}_colorset"}
>     elsif ($reverse == 1) {$colorset="${which}_colorset_star"}
>     elsif ($reverse == 2) {$colorset="${which}_colorset_star_star"}
>     else {$colorset="${which}_colorset"}
>     if (!(defined  @$colorset))
>     { print STDERR "\nframes for $which are not supported\n"; return($rest);}
> 
> [...]
> 
> Possibly this should be replaced with "if (!(defined $colorset))" but I'd 
> like an opinion from someone who is more familiar with this codebase.

Agreed.

Looking one step further it looks like the whole if is useless, since
$colorset will always be defined by the if/elsif/else construct
above.

But I guess this code is trying to do something else, like checking
if a specific ${which}_colorset exists.

After digging a bit through the code, it looks like
check_frame_colorset() is called with a $frame_implementation as the
second parameter, and this can by either "W3C" or "Netscape", and
then we find @Netscape_colorset* (but no @W3C_colorset*).

So the code in check_frame_colorset() sets $colorset to either
"Netscape_colorset*" or "W3C_colorset*" and then tries to check if an
array with this name exists. And therefore I guess the line should be

     if (! @$colorset)

Seems to work in a quick minimal test :)


Cheers,
gregor, preparing an NMU with this change

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer -  https://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Funny Van Dannen: Plastikball

Attachment: signature.asc
Description: Digital Signature

Reply via email to