summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-02-26 14:09:26 -0500
committerJoey Hess <joey@gnu.kitenet.net>2009-02-26 14:09:26 -0500
commit596b2906fdc863fac2a3c86abbdb39416eee1961 (patch)
tree72de45306785d8d08c7a4b497db493d815fce205
parent457d330758ffe0935837ed38a93608c519a62403 (diff)
bzr: Add missing rcs_diff. (liw)
-rw-r--r--IkiWiki/Plugin/bzr.pm18
-rw-r--r--debian/changelog2
-rw-r--r--doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn36
3 files changed, 19 insertions, 37 deletions
diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm
index 783623dee..883007367 100644
--- a/IkiWiki/Plugin/bzr.pm
+++ b/IkiWiki/Plugin/bzr.pm
@@ -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 ($) {
diff --git a/debian/changelog b/debian/changelog
index 68d08ad8e..90b672e8d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,7 +10,7 @@ ikiwiki (3.05) UNRELEASED; urgency=low
* Add tagged() PageSpec.
* Updated German translation (Kai Wasserbäch). Closes: #516770
* Setup automator: Prompt for password twice. Closes: #516973
- * bzr: Add missing stub rcs_diff.
+ * bzr: Add missing rcs_diff. (liw)
* comments: Avoid showing comment moderation button in prefs to non-admins.
-- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500
diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn
index 110f769c7..0294ec62e 100644
--- a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn
+++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn
@@ -24,38 +24,4 @@ Grepping to verify absence of rcs_diff:
>> seems to work. I am unfortunately not ready to set up a git repository that you
>> can pull from. --liw
- diff --git a/IkiWiki/Plugin/.bzr.pm.swp b/IkiWiki/Plugin/.bzr.pm.swp
- new file mode 100644
- index 0000000..712120c
- Binary files /dev/null and b/IkiWiki/Plugin/.bzr.pm.swp differ
- diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm
- index 783623d..f1d5854 100644
- --- a/IkiWiki/Plugin/bzr.pm
- +++ b/IkiWiki/Plugin/bzr.pm
- @@ -256,7 +256,25 @@ sub rcs_recentchanges ($) {
- }
-
- sub rcs_diff ($) {
- - # TODO
- + my $taintedrev=shift;
- + my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
- + print STDERR "taintedrev: $taintedrev\nrev: $rev\n";
- +
- + my $prevspec = "before:" . $rev;
- + my $revspec = "revno:" . $rev;
- + my @cmdline = ("bzr", "diff", "--old", $config{srcdir},
- + "--new", $config{srcdir},
- + "-r", $prevspec . ".." . $revspec);
- + print STDERR "cmdline: @cmdline\n";
- + open (my $out, "@cmdline |");
- +
- + my @lines = <$out>;
- + if (wantarray) {
- + return @lines;
- + }
- + else {
- + return join("", @lines);
- + }
- }
-
- sub rcs_getctime ($) {
+[[done]] --[[Joey]]