Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
bzr.pm
diff --git
a/IkiWiki/Plugin/bzr.pm
b/IkiWiki/Plugin/bzr.pm
index 44ab9a86a207bf11637f3249d5247a98ceecf32f..3bc4ea8dd69b1d67329ec1db81bdd2e4ac9d19cf 100644
(file)
--- a/
IkiWiki/Plugin/bzr.pm
+++ b/
IkiWiki/Plugin/bzr.pm
@@
-123,8
+123,13
@@
sub rcs_prepedit ($) {
return "";
}
return "";
}
-sub bzr_author ($$) {
- my ($user, $ipaddr) = @_;
+sub bzr_author ($) {
+ my $session=shift;
+
+ return unless defined $session;
+
+ my $user=$session->param("name");
+ my $ipaddr=$session->remote_addr();
if (defined $user) {
return IkiWiki::possibly_foolish_untaint($user);
if (defined $user) {
return IkiWiki::possibly_foolish_untaint($user);
@@
-137,18
+142,19
@@
sub bzr_author ($$) {
}
}
}
}
-sub rcs_commit (
$$$;$$$
) {
- my
($file, $message, $rcstoken, $user, $ipaddr, $emailuser) =
@_;
+sub rcs_commit (
@
) {
+ my
%params=
@_;
-
$user = bzr_author($user, $ipaddr
);
+
my $user=bzr_author($params{session}
);
- $
message = IkiWiki::possibly_foolish_untaint($message
);
- if (! length $
message
) {
- $
message
= "no message given";
+ $
params{message} = IkiWiki::possibly_foolish_untaint($params{message}
);
+ if (! length $
params{message}
) {
+ $
params{message}
= "no message given";
}
}
- my @cmdline = ("bzr", "commit", "--quiet", "-m", $message, "--author", $user,
- $config{srcdir}."/".$file);
+ my @cmdline = ("bzr", "commit", "--quiet", "-m", $params{message},
+ (defined $user ? ("--author", $user) : ()),
+ $config{srcdir}."/".$params{file});
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
@@
-156,19
+162,18
@@
sub rcs_commit ($$$;$$$) {
return undef; # success
}
return undef; # success
}
-sub rcs_commit_staged ($$$;$) {
- # Commits all staged changes. Changes can be staged using rcs_add,
- # rcs_remove, and rcs_rename.
- my ($message, $user, $ipaddr, $emailuser)=@_;
+sub rcs_commit_staged (@) {
+ my %params=@_;
-
$user = bzr_author($user, $ipaddr
);
+
my $user=bzr_author($params{session}
);
- $
message = IkiWiki::possibly_foolish_untaint($message
);
- if (! length $
message
) {
- $
message
= "no message given";
+ $
params{message} = IkiWiki::possibly_foolish_untaint($params{message}
);
+ if (! length $
params{message}
) {
+ $
params{message}
= "no message given";
}
}
- my @cmdline = ("bzr", "commit", "--quiet", "-m", $message, "--author", $user,
+ my @cmdline = ("bzr", "commit", "--quiet", "-m", $params{message},
+ (defined $user ? ("--author", $user) : ()),
$config{srcdir});
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
$config{srcdir});
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
@@
-266,8
+271,9
@@
sub rcs_recentchanges ($) {
return @ret;
}
return @ret;
}
-sub rcs_diff ($) {
+sub rcs_diff ($
;$
) {
my $taintedrev=shift;
my $taintedrev=shift;
+ my $maxlines=shift;
my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
my $prevspec = "before:" . $rev;
my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
my $prevspec = "before:" . $rev;
@@
-276,8
+282,11
@@
sub rcs_diff ($) {
"--new", $config{srcdir},
"-r", $prevspec . ".." . $revspec);
open (my $out, "@cmdline |");
"--new", $config{srcdir},
"-r", $prevspec . ".." . $revspec);
open (my $out, "@cmdline |");
-
- my @lines = <$out>;
+ my @lines;
+ while (my $line=<$out>) {
+ last if defined $maxlines && @lines == $maxlines;
+ push @lines, $line;
+ }
if (wantarray) {
return @lines;
}
if (wantarray) {
return @lines;
}