Make getlibdirs return an array (or whathever this type is called in perl)
authorLouis <spalax@gresille.org>
Sat, 6 Dec 2014 17:40:14 +0000 (18:40 +0100)
committerLouis <spalax@gresille.org>
Sat, 6 Dec 2014 17:40:14 +0000 (18:40 +0100)
IkiWiki.pm

index 73fedb0a64598de0cd922117a3ac6ab7b0be16bb..9e2eb0b1a98130bbfc2d7cbb7fd548eda46ad75c 100644 (file)
@@ -552,14 +552,17 @@ sub getsetup () {
 }
 
 sub getlibdirs () {
+       my $libdirs;
        if (! ref $config{libdir}) {
                if (length $config{libdir}) {
-                       return [$config{libdir}];
+                       $libdirs = [$config{libdir}];
                } else {
-                       return [];
+                       $libdirs = [];
                }
+       } else {
+               $libdirs = $config{libdir};
        }
-       return $config{libdir};
+       return @{$libdirs};
 }
 
 sub defaultconfig () {
@@ -704,14 +707,14 @@ sub checkconfig () {
 sub listplugins () {
        my %ret;
 
-       foreach my $dir (@INC, @{getlibdirs()}) {
+       foreach my $dir (@INC, getlibdirs()) {
                next unless defined $dir && length $dir;
                foreach my $file (glob("$dir/IkiWiki/Plugin/*.pm")) {
                        my ($plugin)=$file=~/.*\/(.*)\.pm$/;
                        $ret{$plugin}=1;
                }
        }
-       foreach my $dir (@{getlibdirs()}, "$installdir/lib/ikiwiki") {
+       foreach my $dir (getlibdirs(), "$installdir/lib/ikiwiki") {
                next unless defined $dir && length $dir;
                foreach my $file (glob("$dir/plugins/*")) {
                        $ret{basename($file)}=1 if -x $file;
@@ -723,7 +726,7 @@ sub listplugins () {
 
 sub loadplugins () {
        if (defined $config{libdir} && length $config{libdir}) {
-               foreach my $dir (@{getlibdirs()}) {
+               foreach my $dir (getlibdirs()) {
                        unshift @INC, possibly_foolish_untaint($dir);
                }
        }
@@ -758,7 +761,7 @@ sub loadplugin ($;$) {
 
        return if ! $force && grep { $_ eq $plugin} @{$config{disable_plugins}};
 
-       foreach my $possiblytainteddir (@{getlibdirs()}, "$installdir/lib/ikiwiki") {
+       foreach my $possiblytainteddir (getlibdirs(), "$installdir/lib/ikiwiki") {
                my $dir = defined $possiblytainteddir ? possibly_foolish_untaint($possiblytainteddir) : undef;
                if (defined $dir && -x "$dir/plugins/$plugin") {
                        eval { require IkiWiki::Plugin::external };