stop abusing titlepage for internal encoding (esp since it doesn't work)
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 30 Jul 2006 06:55:33 +0000 (06:55 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 30 Jul 2006 06:55:33 +0000 (06:55 +0000)
IkiWiki/Plugin/aggregate.pm

index a07d45decb33bb8129098934bc0c8f4a11c3875d..41ca9cce0f7ff2f4029cd123102d1b04276f96f5 100644 (file)
@@ -107,6 +107,8 @@ sub delete (@) { #{{{
 } #}}}
 
 sub loadstate () { #{{{
+       eval q{use HTML::Entities};
+       die $@ if $@;
        if (-e "$IkiWiki::config{wikistatedir}/aggregate") {
                open (IN, "$IkiWiki::config{wikistatedir}/aggregate" ||
                        die "$IkiWiki::config{wikistatedir}/aggregate: $!");
@@ -118,7 +120,7 @@ sub loadstate () { #{{{
                                my ($field, $val)=split(/=/, $i, 2);
                                if ($field eq "name" || $field eq "feed" ||
                                    $field eq "guid" || $field eq "message") {
-                                       $data->{$field}=IkiWiki::pagetitle($val);
+                                       $data->{$field}=decode_entities($val, " \t\n");
                                }
                                elsif ($field eq "tag") {
                                        push @{$data->{tags}}, $val;
@@ -141,6 +143,8 @@ sub loadstate () { #{{{
 } #}}}
 
 sub savestate () { #{{{
+       eval q{use HTML::Entities};
+       die $@ if $@;
        open (OUT, ">$IkiWiki::config{wikistatedir}/aggregate" ||
                die "$IkiWiki::config{wikistatedir}/aggregate: $!");
        foreach my $data (values %feeds, values %guids) {
@@ -162,7 +166,7 @@ sub savestate () { #{{{
                foreach my $field (keys %$data) {
                        if ($field eq "name" || $field eq "feed" ||
                            $field eq "guid" || $field eq "message") {
-                               push @line, "$field=".IkiWiki::titlepage($data->{$field});
+                               push @line, "$field=".encode_entities($data->{$field}, " \t\n");
                        }
                        elsif ($field eq "tags") {
                                push @line, "tag=$_" foreach @{$data->{tags}};