From 29fdfe65b24a7feaf7e062741e274086e603e49d Mon Sep 17 00:00:00 2001 From: Elijah Perrault Date: Tue, 18 Jan 2011 20:37:49 -0700 Subject: [PATCH] Bug fix: conf_get() now returns correct data by checking what type of reference the requested value is. --- doc/CHANGELOG | 2 ++ src/API/Std.pm | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index d0984ca..44d664f 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -3,6 +3,8 @@ Auto IRC Bot 3.0: Change Log 3.0 Indev ================================================================== + * Bug fix: conf_get() now returns correct data by checking + what type of reference the requested value is. * Foundation completed. * Added API function err() * Added API function dbug() diff --git a/src/API/Std.pm b/src/API/Std.pm index a413c77..8510553 100644 --- a/src/API/Std.pm +++ b/src/API/Std.pm @@ -59,13 +59,28 @@ sub conf_get # Return the requested configuration value(s). if ($count == 1) { - return $Auto::SETTINGS{$val[0]}; + if (ref($Auto::SETTINGS{$val[0]}) eq 'HASH') { + return %{ $Auto::SETTINGS{$val[0]} }; + } + else { + return $Auto::SETTINGS{$val[0]}; + } } elsif ($count == 2) { - return $Auto::SETTINGS{$val[0]}{$val[1]}; + if (ref($Auto::SETTINGS{$val[0]}{$val[1]}) eq 'HASH') { + return %{ $Auto::SETTINGS{$val[0]}{$val[1]} }; + } + else { + return $Auto::SETTINGS{$val[0]}{$val[1]}; + } } elsif ($count == 3) { - return $Auto::SETTINGS{$val[0]}{$val[1]}{$val[2]}; + if (ref($Auto::SETTINGS{$val[0]}{$val[1]}{$val[2]}) eq 'HASH') { + return %{ $Auto::SETTINGS{$val[0]}{$val[1]}{$val[2]} }; + } + else { + return $Auto::SETTINGS{$val[0]}{$val[1]}{$val[2]}; + } } else { return 0;