aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/mercurial.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-06-23 17:35:21 -0400
committerJoey Hess <joey@kitenet.net>2010-06-23 19:04:36 -0400
commitecdfd1b8644bc926db008054ab6192e18351afed (patch)
tree4bb8d74b48d107562d9d1c194a9d8435c7215c03 /IkiWiki/Plugin/mercurial.pm
parentcaf7bcdda38c1f2c31c70e36a95e4fa3f116f0d7 (diff)
downloadikiwiki-ecdfd1b8644bc926db008054ab6192e18351afed.tar
ikiwiki-ecdfd1b8644bc926db008054ab6192e18351afed.tar.gz
rcs_commit and rcs_commit_staged api changes
Using named parameters for these is overdue. Passing the session in a parameter instead of passing username and IP separately will later allow storing other session info, like username or part of the email. Note that these functions are not part of the exported API, and the prototype change will catch (most) skew, so I am not changing API versions. Any third-party plugins that call them will need updated though.
Diffstat (limited to 'IkiWiki/Plugin/mercurial.pm')
-rw-r--r--IkiWiki/Plugin/mercurial.pm32
1 files changed, 16 insertions, 16 deletions
diff --git a/IkiWiki/Plugin/mercurial.pm b/IkiWiki/Plugin/mercurial.pm
index 1793ab4bb..edf915ae9 100644
--- a/IkiWiki/Plugin/mercurial.pm
+++ b/IkiWiki/Plugin/mercurial.pm
@@ -126,26 +126,26 @@ sub rcs_prepedit ($) {
return "";
}
-sub rcs_commit ($$$;$$$) {
- my ($file, $message, $rcstoken, $user, $ipaddr, $emailuser) = @_;
+sub rcs_commit (@) {
+ my %params=@_;
- if (defined $user) {
- $user = IkiWiki::possibly_foolish_untaint($user);
- }
- elsif (defined $ipaddr) {
- $user = "Anonymous from ".IkiWiki::possibly_foolish_untaint($ipaddr);
- }
- else {
- $user = "Anonymous";
+ my $user="Anonymous";
+ if (defined $params{session}) {
+ if (defined $params{session}->param("name")) {
+ $user = $params{session}->param("name");
+ }
+ elsif (defined $params{session}->remote_addr()) {
+ $user = "Anonymous from ".$params{session}->remote_addr();
+ }
}
- $message = IkiWiki::possibly_foolish_untaint($message);
- if (! length $message) {
- $message = "no message given";
+ if (! length $params{message}) {
+ $params{message} = "no message given";
}
my @cmdline = ("hg", "-q", "-R", $config{srcdir}, "commit",
- "-m", $message, "-u", $user);
+ "-m", IkiWiki::possibly_foolish_untaint($params{message}),
+ "-u", IkiWiki::possibly_foolish_untaint($user));
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
@@ -153,10 +153,10 @@ sub rcs_commit ($$$;$$$) {
return undef; # success
}
-sub rcs_commit_staged ($$$;$) {
+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)=@_;
+ my %params=@_;
error("rcs_commit_staged not implemented for mercurial"); # TODO
}