]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Rcs/git.pm
truncate recentchangesdiffs after 200 lines
[ikiwiki.git] / IkiWiki / Rcs / git.pm
index 9306a513eb01b0bb6e013e7aad5523d341cb195b..1882b43ef5f1c8e642b429785ca9e55af556ae48 100644 (file)
@@ -414,16 +414,18 @@ sub rcs_recentchanges ($) { #{{{
 sub rcs_diff ($) { #{{{
        my $rev=shift;
        my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint
-       my $ret;
+       my @lines;
        foreach my $line (run_or_non("git", "show", $sha1)) {
-               if (defined $ret) {
-                       $ret.=$line."\n";
-               }
-               elsif ($line=~/^diff --git/) {
-                       $ret=$line."\n";
+               if (@lines || $line=~/^diff --git/) {
+                       push @lines, $line."\n";
                }
        }
-       return $ret;
+       if (wantarray) {
+               return @lines;
+       }
+       else {
+               return join("", @lines);
+       }
 } #}}}
 
 sub rcs_getctime ($) { #{{{