X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/1ca191b5707ef38af5cbe196e314d57cd5c8c065..12fa9c031f7a9dc25dba628aa91fc347586e4ab6:/IkiWiki/Plugin/recentchangesdiff.pm?ds=sidebyside

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