]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/bzr.pm
getsource: turn missing pages into a 404
[ikiwiki.git] / IkiWiki / Plugin / bzr.pm
index 783623dee1d841207be58412de21d8a2f24567d6..8830073672663b77d2e21fb837a15a913b7b6c0d 100644 (file)
@@ -256,7 +256,23 @@ sub rcs_recentchanges ($) {
 }
 
 sub rcs_diff ($) {
-       # TODO
+       my $taintedrev=shift;
+       my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
+
+       my $prevspec = "before:" . $rev;
+       my $revspec = "revno:" . $rev;
+       my @cmdline = ("bzr", "diff", "--old", $config{srcdir},
+               "--new", $config{srcdir},
+               "-r", $prevspec . ".." . $revspec);
+       open (my $out, "@cmdline |");
+
+       my @lines = <$out>;
+       if (wantarray) {
+               return @lines;
+       }
+       else {
+               return join("", @lines);
+       }
 }
 
 sub rcs_getctime ($) {