Bug#529616: libconfig-inifiles-perl: incompatible "fix" breaks programs

grin grin at grin.hu
Wed May 20 14:54:17 UTC 2009


Package: libconfig-inifiles-perl
Version: 2.47-1
Severity: important


Using tie interface collapses hashes and returns LF separated lines. This is
very much different from old version, breaking things all over.

old result (config::auto):

                                        'detector' => [
                                                         'pureftp',
                                                         'dovecot'
                                                       ] 
new result:
          'general' => {
                         'detector' => 'pureftp
dovecot'
                       },




Old code:

# ----------------------------------------------------------
# Sub: Config::IniFiles::_section::FETCH
#
# Args: $key
#       $key    The name of the key whose value to get
#
# Description: Returns the value associated with $key. If
# the value is a hash, returns a hashref, just like normal
# Perl hashes.
# ----------------------------------------------------------
# Date      Modification                              Author
# ----------------------------------------------------------
# 2000Jun15 Fixed bugs in -default handler                JW
# 2000Dec07 Fixed another bug in -deault handler          JW
# 2002Jul04 Returning scalar values (Bug:447532)          AS
# ----------------------------------------------------------
sub FETCH {
  my $self = shift;
  my $key = shift;

  $key = lc($key) if( $self->{nocase} );

  my $val = $self->{v}{$key};
  
  unless( defined $self->{v}{$key} ) {
    $val = $self->{default}{$key} if ref($self->{default}) eq 'HASH';
  } # end unless

  return $val;
} # end FETCH



New code:

# Sub: Config::IniFiles::_section::FETCH
#
# Args: $key
#       $key    The name of the key whose value to get
#
# Description: Returns the value associated with $key. If
# the value is a list, returns the list joined by $/.
# ----------------------------------------------------------
# Date      Modification                              Author
# ----------------------------------------------------------
# 2000Jun15 Fixed bugs in -default handler                JW
# 2000Dec07 Fixed another bug in -deault handler          JW
# 2002Jul04 Returning scalar values (Bug:447532)          AS
# ----------------------------------------------------------
sub FETCH {
        my ($self, $key)=@_;
        my @retval=$self->{config}->val($self->{section}, $key);
        return (@retval <= 1) ? $retval[0] : join($/, @retval); 
} # end FETCH


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: i386 (x86_64)

Kernel: Linux 2.6.18-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages libconfig-inifiles-perl depends on:
ii  perl-base                     5.10.0-22  minimal Perl system

libconfig-inifiles-perl recommends no packages.

-- no debconf information





More information about the pkg-perl-maintainers mailing list