summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Rcs/mercurial.pm12
-rwxr-xr-xt/mercurial.t5
2 files changed, 11 insertions, 6 deletions
diff --git a/IkiWiki/Rcs/mercurial.pm b/IkiWiki/Rcs/mercurial.pm
index 66ff0996a..da2beb7cd 100644
--- a/IkiWiki/Rcs/mercurial.pm
+++ b/IkiWiki/Rcs/mercurial.pm
@@ -65,19 +65,23 @@ sub rcs_prepedit ($) { #{{{
return "";
} #}}}
-sub rcs_commit ($$$) { #{{{
+sub rcs_commit ($$$;$$) { #{{{
my ($file, $message, $rcstoken, $user, $ipaddr) = @_;
if (defined $user) {
- $message="web commit by $user".(length $message ? ": $message" : "");
+ $user = possibly_foolish_untaint($user);
}
elsif (defined $ipaddr) {
- $message="web commit from $ipaddr".(length $message ? ": $message" : "");
+ $user = "Anonymous from $ipaddr";
+ }
+ else {
+ $user = "Anonymous";
}
$message = possibly_foolish_untaint($message);
- my @cmdline = ("hg", "-R", "$config{srcdir}", "commit", "-m", "$message");
+ my @cmdline = ("hg", "-R", "$config{srcdir}", "commit",
+ "-m", "$message", "-u", "$user");
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
diff --git a/t/mercurial.t b/t/mercurial.t
index fc9ab68a3..c42e328c2 100755
--- a/t/mercurial.t
+++ b/t/mercurial.t
@@ -12,7 +12,7 @@ BEGIN {
}
}
}
-use Test::More tests => 9;
+use Test::More tests => 10;
BEGIN { use_ok("IkiWiki"); }
@@ -27,7 +27,7 @@ system "hg init $config{srcdir}";
my $test1 = readfile("t/test1.mdwn");
writefile('test1.mdwn', $config{srcdir}, $test1);
IkiWiki::rcs_add("test1.mdwn");
-IkiWiki::rcs_commit("test1.mdwn", "Added the first page", "moo");
+IkiWiki::rcs_commit("test1.mdwn", "Added the first page", "moo", "Joe User");
my @changes;
@changes = IkiWiki::rcs_recentchanges(3);
@@ -35,6 +35,7 @@ my @changes;
is($#changes, 0);
is($changes[0]{message}[0]{"line"}, "Added the first page");
is($changes[0]{pages}[0]{"page"}, "test1.mdwn");
+is($changes[0]{user}, "Joe User");
# Manual commit
my $username = "Foo Bar";