mercurial username setting patch

master
joey 2006-11-26 19:55:46 +00:00
parent 075c8b4d0b
commit 06137b95d4
2 changed files with 11 additions and 6 deletions

View File

@ -65,19 +65,23 @@ sub rcs_prepedit ($) { #{{{
return ""; return "";
} #}}} } #}}}
sub rcs_commit ($$$) { #{{{ sub rcs_commit ($$$;$$) { #{{{
my ($file, $message, $rcstoken, $user, $ipaddr) = @_; my ($file, $message, $rcstoken, $user, $ipaddr) = @_;
if (defined $user) { if (defined $user) {
$message="web commit by $user".(length $message ? ": $message" : ""); $user = possibly_foolish_untaint($user);
} }
elsif (defined $ipaddr) { elsif (defined $ipaddr) {
$message="web commit from $ipaddr".(length $message ? ": $message" : ""); $user = "Anonymous from $ipaddr";
}
else {
$user = "Anonymous";
} }
$message = possibly_foolish_untaint($message); $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) { if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!"; warn "'@cmdline' failed: $!";
} }

View File

@ -12,7 +12,7 @@ BEGIN {
} }
} }
} }
use Test::More tests => 9; use Test::More tests => 10;
BEGIN { use_ok("IkiWiki"); } BEGIN { use_ok("IkiWiki"); }
@ -27,7 +27,7 @@ system "hg init $config{srcdir}";
my $test1 = readfile("t/test1.mdwn"); my $test1 = readfile("t/test1.mdwn");
writefile('test1.mdwn', $config{srcdir}, $test1); writefile('test1.mdwn', $config{srcdir}, $test1);
IkiWiki::rcs_add("test1.mdwn"); 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; my @changes;
@changes = IkiWiki::rcs_recentchanges(3); @changes = IkiWiki::rcs_recentchanges(3);
@ -35,6 +35,7 @@ my @changes;
is($#changes, 0); is($#changes, 0);
is($changes[0]{message}[0]{"line"}, "Added the first page"); is($changes[0]{message}[0]{"line"}, "Added the first page");
is($changes[0]{pages}[0]{"page"}, "test1.mdwn"); is($changes[0]{pages}[0]{"page"}, "test1.mdwn");
is($changes[0]{user}, "Joe User");
# Manual commit # Manual commit
my $username = "Foo Bar"; my $username = "Foo Bar";