]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Setup/Yaml.pm
fix patch to not expose config setting as a regexp
[ikiwiki.git] / IkiWiki / Setup / Yaml.pm
index ba9192faf6f29ceb4fbb1f4a944de4b41bce3bd6..904784728e0a0cbc6314cf26006010b5e5d25d8a 100644 (file)
@@ -5,18 +5,21 @@ package IkiWiki::Setup::Yaml;
 use warnings;
 use strict;
 use IkiWiki;
 use warnings;
 use strict;
 use IkiWiki;
-use YAML;
 
 sub loaddump ($$) {
        my $class=shift;
        my $content=shift;
 
 
 sub loaddump ($$) {
        my $class=shift;
        my $content=shift;
 
+       eval q{use YAML::Any};
+       eval q{use YAML} if $@;
+       die $@ if $@;
+       $YAML::Syck::ImplicitUnicode=1;
        IkiWiki::Setup::merge(Load($content));
 }
 
 sub gendump ($@) {
        my $class=shift;
        IkiWiki::Setup::merge(Load($content));
 }
 
 sub gendump ($@) {
        my $class=shift;
-
+       
        "# IkiWiki::Setup::Yaml - YAML formatted setup file",
        "#",
        (map { "# $_" } @_),
        "# IkiWiki::Setup::Yaml - YAML formatted setup file",
        "#",
        (map { "# $_" } @_),
@@ -31,11 +34,15 @@ sub dumpline ($$$$) {
        my $type=shift;
        my $prefix=shift;
        
        my $type=shift;
        my $prefix=shift;
        
+       eval q{use YAML::Old};
+       eval q{use YAML} if $@;
+       die $@ if $@;
        $YAML::UseHeader=0;
        $YAML::UseHeader=0;
+
        my $dump=Dump({$key => $value});
        chomp $dump;
        if (length $prefix) {
        my $dump=Dump({$key => $value});
        chomp $dump;
        if (length $prefix) {
-               $dump=join("", map { $prefix.$_ } split(/\n/, $dump));
+               $dump=join("\n", map { $prefix.$_ } split(/\n/, $dump));
        }
        return $dump;
 }
        }
        return $dump;
 }