X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c4f3d0554a02eba93d94d4c0914f4afddf85274b..82c46db1126ae16502117b714bfb1d4dd9379e4c:/IkiWiki/Plugin/recentchangesdiff.pm?ds=inline

diff --git a/IkiWiki/Plugin/recentchangesdiff.pm b/IkiWiki/Plugin/recentchangesdiff.pm
index e3ba9b8d8..418822793 100644
--- a/IkiWiki/Plugin/recentchangesdiff.pm
+++ b/IkiWiki/Plugin/recentchangesdiff.pm
@@ -28,17 +28,24 @@ sub pagetemplate (@) {
 	my $template=$params{template};
 	if ($config{rcs} && exists $params{rev} && length $params{rev} &&
 	    $template->query(name => "diff")) {
-		my @lines=IkiWiki::rcs_diff($params{rev});
+		my @lines=IkiWiki::rcs_diff($params{rev}, $maxlines+1);
 		if (@lines) {
 			my $diff;
+			my $trunc=0;
 			if (@lines > $maxlines) {
-				# only include so many lines of diff
-				$diff=join("", @lines[0..($maxlines-1)])."\n".
-					gettext("(Diff truncated)");
+				$diff=join("", @lines[0..($maxlines-1)]);
+				$trunc=1;
 			}
 			else {
 				$diff=join("", @lines);
 			}
+			if (length $diff > 102400) {
+				$diff=substr($diff, 0, 10240);
+				$trunc=1;
+			}
+			if ($trunc) {
+				$diff.="\n".gettext("(Diff truncated)");
+			}
 			# escape html
 			$diff = encode_entities($diff);
 			# escape links and preprocessor stuff