diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-02-26 14:09:26 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-02-26 14:09:26 -0500 |
commit | 596b2906fdc863fac2a3c86abbdb39416eee1961 (patch) | |
tree | 72de45306785d8d08c7a4b497db493d815fce205 | |
parent | 457d330758ffe0935837ed38a93608c519a62403 (diff) |
bzr: Add missing rcs_diff. (liw)
-rw-r--r-- | IkiWiki/Plugin/bzr.pm | 18 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/bugs/bzr_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 <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]] |