]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/meta.pm
forgot to add
[ikiwiki.git] / IkiWiki / Plugin / meta.pm
index a0dd66376b295cc574f75ad6cdcad2473c832d8f..968e6ccee789de718bac558f6dd30cf58b0acaab 100644 (file)
@@ -24,6 +24,7 @@ sub filter (@) { #{{{
        my %params=@_;
        
        $meta{$params{page}}='';
+       delete $pagestate{$params{page}}{meta}{redir};
 
        return $params{content};
 } # }}}
@@ -71,11 +72,17 @@ sub preprocess (@) { #{{{
        }
        elsif ($key eq 'redir') {
                my $safe=0;
-               if ($value =~ /^$config{wiki_link_regexp}$/) {
+               if ($value !~ /^\w+:\/\//) {
+                       add_depends($page, $value);
                        my $link=bestlink($page, $value);
                        if (! length $link) {
                                return "[[meta ".gettext("redir page not found")."]]";
                        }
+                       $pagestate{$page}{meta}{redir}=$link;
+                       if ($pagestate{$link}{meta}{redir}) {
+                               # TODO: real cycle detection
+                               return "[[meta ".gettext("redir not allowed to point to a page that contains a redir")."]]";
+                       }
                        $value=urlto($link, $destpage);
                        $safe=1;
                }