blah
[ikiwiki.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index 146ae93b7c12f5cfe6a912ab40183d6274fedb56..a3bf09d3b4b7da6a318961fa9890b614dc56fd8c 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -407,7 +407,7 @@ sub rcs_recentchanges ($) { #{{{
                my $div=qr/^--------------------+$/;
                my $infoline=qr/^r(\d+)\s+\|\s+([^\s]+)\s+\|\s+(\d+-\d+-\d+\s+\d+:\d+:\d+\s+[-+]?\d+).*/;
                my $state='start';
-               my ($rev, $user, $when, @pages, $message);
+               my ($rev, $user, $when, @pages, @message);
                foreach (`LANG=C svn log -v '$svn_url'`) {
                        chomp;
                        if ($state eq 'start' && /$div/) {
@@ -419,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' && /^$/) {
@@ -427,16 +427,16 @@ sub rcs_recentchanges ($) { #{{{
                        }
                        elsif ($state eq 'body' && /$div/) {
                                push @ret, { rev => $rev, user => $user,
-                                       when => $when, message => $message,
+                                       when => $when, message => [@message],
                                        pages => [@pages] } if @pages;
                                return @ret if @ret >= $num;
                                
                                $state='header';
-                               $message=$rev=$user=$when=undef;
-                               @pages=();
+                               $rev=$user=$when=undef;
+                               @pages=@message=();
                        }
                        elsif ($state eq 'body') {
-                               $message.="$_<br>\n";
+                               push @message, {line => $_},
                        }
                }
        }
@@ -658,7 +658,7 @@ EOF
        exit 0;
 } #}}}
 
-sub cgi_recentchanges () { #{{{
+sub cgi_recentchanges ($) { #{{{
        my $q=shift;
        
        my $template=HTML::Template->new(
@@ -669,7 +669,7 @@ sub cgi_recentchanges () { #{{{
                wikiname => $wikiname,
                changelog => [rcs_recentchanges(100)],
        );
-       return $template->output;
+       print $q->header, $template->output;
 } #}}}
 
 sub cgi_signin ($$) { #{{{
@@ -790,7 +790,7 @@ sub cgi () { #{{{
        }
        
        if ($do eq 'recentchanges') {
-               cgi_recentchanges();
+               cgi_recentchanges($q);
                return;
        }