return targetpage($page, $config{htmlext});
} #}}}
-sub srcfile ($) { #{{{
+sub srcfile_stat { #{{{
my $file=shift;
+ my $nothrow=shift;
- return "$config{srcdir}/$file" if -e "$config{srcdir}/$file";
+ return "$config{srcdir}/$file", stat(_) if -e "$config{srcdir}/$file";
foreach my $dir (@{$config{underlaydirs}}, $config{underlaydir}) {
- return "$dir/$file" if -e "$dir/$file";
+ return "$dir/$file", stat(_) if -e "$dir/$file";
}
- error("internal error: $file cannot be found in $config{srcdir} or underlay");
+ error("internal error: $file cannot be found in $config{srcdir} or underlay") unless $nothrow;
return;
} #}}}
+sub srcfile ($;$) { #{{{
+ return (srcfile_stat(@_))[0];
+} #}}}
+
sub add_underlay ($) { #{{{
my $dir=shift;
return "<a href=\"$user\">$oiduser</a>";
}
else {
+ eval q{use CGI 'escapeHTML'};
+ error($@) if $@;
+
return htmllink("", "", escapeHTML(
length $config{userdir} ? $config{userdir}."/".$user : $user
), noimageinline => 1);
}
}
+ if (! length $code) {
+ $code=0;
+ }
+
return eval 'sub { my $page=shift; '.$code.' }';
} #}}}
); #}}}
sub new { #{{{
- return bless \$_[1], $_[0];
+ my $class = shift;
+ my $value = shift;
+ return bless \$value, $class;
} #}}}
package IkiWiki::SuccessReason;
); #}}}
sub new { #{{{
- return bless \$_[1], $_[0];
+ my $class = shift;
+ my $value = shift;
+ return bless \$value, $class;
}; #}}}
package IkiWiki::PageSpec;