]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
web commit by http://willthompson.co.uk/
[git.ikiwiki.info.git] / IkiWiki.pm
index f5cf8ba96bbc8d61a6e801d9058e13955e5108c6..8af0d7889ae6daa457e16e8d819160aaf1d776b8 100644 (file)
@@ -103,6 +103,12 @@ sub checkconfig () { #{{{
                }
        }
 
+       if (ref $config{ENV} eq 'HASH') {
+               foreach my $val (keys %{$config{ENV}}) {
+                       $ENV{$val}=$config{ENV}{$val};
+               }
+       }
+
        if ($config{w3mmode}) {
                eval q{use Cwd q{abs_path}};
                error($@) if $@;
@@ -282,18 +288,22 @@ sub htmlpage ($) { #{{{
        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") unless $nothrow;
        return;
 } #}}}
 
+sub srcfile ($;$) { #{{{
+       return (srcfile_stat(@_))[0];
+} #}}}
+
 sub add_underlay ($) { #{{{
        my $dir=shift;
 
@@ -588,7 +598,7 @@ sub htmllink ($$$;@) { #{{{
                                        page => pagetitle(lc($link), 1),
                                        from => $lpage
                                ).
-                               "\">?</a>$linktext</span>"
+                               "\" rel=\"nofollow\">?</a>$linktext</span>"
                }
        }
        
@@ -1252,6 +1262,7 @@ sub pagespec_translate ($) { #{{{
                $code=0;
        }
 
+       no warnings;
        return eval 'sub { my $page=shift; '.$code.' }';
 } #}}}
 
@@ -1266,7 +1277,7 @@ sub pagespec_match ($$;@) { #{{{
        }
 
        my $sub=pagespec_translate($spec);
-       return IkiWiki::FailReason->new('syntax error') if $@;
+       return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"") if $@;
        return $sub->($page, @params);
 } #}}}
 
@@ -1287,7 +1298,9 @@ use overload ( #{{{
 ); #}}}
 
 sub new { #{{{
-       return bless \$_[1], $_[0];
+       my $class = shift;
+       my $value = shift;
+       return bless \$value, $class;
 } #}}}
 
 package IkiWiki::SuccessReason;
@@ -1300,7 +1313,9 @@ use overload ( #{{{
 ); #}}}
 
 sub new { #{{{
-       return bless \$_[1], $_[0];
+       my $class = shift;
+       my $value = shift;
+       return bless \$value, $class;
 }; #}}}
 
 package IkiWiki::PageSpec;