blah
[ikiwiki.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index 5228c45d68a97e4d07d3a3d1b5bfef31268f442e..da3dde46d6e0ebcddd8bf595c21aa73502c6af45 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -26,6 +26,7 @@ my $url="";
 my $cgiurl="";
 my $historyurl="";
 my $svn=1;
+my $anonok=0;
 
 sub usage { #{{{
        die "usage: ikiwiki [options] source templates dest\n";
@@ -418,7 +419,7 @@ sub rcs_recentchanges ($) { #{{{
                                $when=concise(ago(time - str2time($3)));
                        }
                        elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/(.+)$/) {
-                               push @pages, htmllink("", pagename($1), 1)
+                               push @pages, { link => htmllink("", pagename($1), 1) }
                                        if length $1;
                        }
                        elsif ($state eq 'header' && /^$/) {
@@ -597,6 +598,7 @@ sub gen_wrapper ($$) { #{{{
        push @params, "--url=$url" if $url;
        push @params, "--cgiurl=$cgiurl" if $cgiurl;
        push @params, "--historyurl=$historyurl" if $historyurl;
+       push @params, "--anonok" if $anonok;
        my $params=join(" ", @params);
        my $call='';
        foreach my $p ($this, $this, @params) {
@@ -656,7 +658,7 @@ EOF
        exit 0;
 } #}}}
 
-sub cgi_recentchanges () { #{{{
+sub cgi_recentchanges ($) { #{{{
        my $q=shift;
        
        my $template=HTML::Template->new(
@@ -667,7 +669,7 @@ sub cgi_recentchanges () { #{{{
                wikiname => $wikiname,
                changelog => [rcs_recentchanges(100)],
        );
-       return $template->output;
+       print $q->header, $template->output;
 } #}}}
 
 sub cgi_signin ($$) { #{{{
@@ -788,11 +790,11 @@ sub cgi () { #{{{
        }
        
        if ($do eq 'recentchanges') {
-               cgi_recentchanges();
+               cgi_recentchanges($q);
                return;
        }
        
-       if (! defined $session->param("name") || $do eq 'signin') {
+       if ((! $anonok && ! defined $session->param("name")) || $do eq 'signin') {
                cgi_signin($q, $session);
                return;
        }
@@ -926,6 +928,7 @@ if (grep /^-/, @ARGV) {
                "rebuild" => \$rebuild,
                "wrapper" => \$wrapper,
                "svn!" => \$svn,
+               "anonok!" => \$anonok,
                "cgi" => \$cgi,
                "url=s" => \$url,
                "cgiurl=s" => \$cgiurl,