summaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Setup.pm6
-rw-r--r--IkiWiki/Setup/Standard.pm8
2 files changed, 9 insertions, 5 deletions
diff --git a/IkiWiki/Setup.pm b/IkiWiki/Setup.pm
index b67d1a454..9c45a8baf 100644
--- a/IkiWiki/Setup.pm
+++ b/IkiWiki/Setup.pm
@@ -36,17 +36,15 @@ sub load ($) { # {{{
$raw_setup=undef;
# Merge setup into existing config and untaint.
- $setup{plugin}=$config{plugin};
if (exists $setup{add_plugins}) {
- push @{$setup{plugin}}, @{$setup{add_plugins}};
- delete $setup{add_plugins};
+ push @{$setup{add_plugins}}, @{$config{add_plugins}};
}
if (exists $setup{exclude}) {
push @{$config{wiki_file_prune_regexps}}, $setup{exclude};
}
foreach my $c (keys %setup) {
if (defined $setup{$c}) {
- if (! ref $setup{$c}) {
+ if (! ref $setup{$c} || ref $setup{$c} eq 'Regexp') {
$config{$c}=IkiWiki::possibly_foolish_untaint($setup{$c});
}
elsif (ref $setup{$c} eq 'ARRAY') {
diff --git a/IkiWiki/Setup/Standard.pm b/IkiWiki/Setup/Standard.pm
index d88dc9e1c..ed4331d61 100644
--- a/IkiWiki/Setup/Standard.pm
+++ b/IkiWiki/Setup/Standard.pm
@@ -29,15 +29,21 @@ sub dumpline ($$$$) { #{{{
my $dumpedvalue;
if ($type eq 'boolean' || $type eq 'integer') {
+ # avoid quotes
$dumpedvalue=$value;
}
+ elsif ($type eq 'string' && ref $value eq 'ARRAY' && @$value &&
+ ! grep { /[^-A-Za-z0-9_]/ } @$value) {
+ # dump simple array as qw{}
+ $dumpedvalue="[qw{ ".join(" ", @$value)." }]";
+ }
else {
$dumpedvalue=Dumper($value);
chomp $dumpedvalue;
$dumpedvalue=~s/^\t//;
}
- return "\t$prefix$key=$dumpedvalue,";
+ return "\t$prefix$key => $dumpedvalue,";
} #}}}
sub dumpvalues ($@) { #{{{