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: $!";
}
}
}
}
-use Test::More tests => 9;
+use Test::More tests => 10;
BEGIN { use_ok("IkiWiki"); }
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);
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";