From 596b2906fdc863fac2a3c86abbdb39416eee1961 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 26 Feb 2009 14:09:26 -0500 Subject: [PATCH] bzr: Add missing rcs_diff. (liw) --- IkiWiki/Plugin/bzr.pm | 18 +++++++++- debian/changelog | 2 +- ..._plugin_does_not_define_rcs__95__diff.mdwn | 36 +------------------ 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 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]] -- 2.39.5