- if ($pagestate{$link}{meta}{redir}) {
- # TODO: real cycle detection
- return "[[meta ".gettext("redir not allowed to point to a page that contains a redir")."]]";
+ my $at=$page;
+ my %seen;
+ while (exists $pagestate{$at}{meta}{redir}) {
+ if ($seen{$at}) {
+ return "[[meta ".gettext("redir cycle is not allowed")."]]";
+ }
+ $seen{$at}=1;
+ $at=$pagestate{$at}{meta}{redir};