X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/8512ae3ed5329a8aa69debc96f49eaa6dedeaae0..c7bdebaaf134729356852918b387071c92f85e72:/IkiWiki/Plugin/mercurial.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/mercurial.pm b/IkiWiki/Plugin/mercurial.pm index 102b4692b..9f0c5b721 100644 --- a/IkiWiki/Plugin/mercurial.pm +++ b/IkiWiki/Plugin/mercurial.pm @@ -5,6 +5,7 @@ use warnings; use strict; use IkiWiki; use Encode; +use URI::Escape q{uri_escape_utf8}; use open qw{:utf8 :std}; sub import { @@ -180,15 +181,15 @@ sub rcs_commit_helper (@) { $ENV{HGENCODING} = 'utf-8'; my $user="Anonymous"; - my $nickname; if (defined $params{session}) { if (defined $params{session}->param("name")) { - $user = $params{session}->param("name"); + $user = IkiWiki::cloak($params{session}->param("name")); } elsif (defined $params{session}->remote_addr()) { - $user = $params{session}->remote_addr(); + $user = IkiWiki::cloak($params{session}->remote_addr()); } + my $nickname=$user; if (defined $params{session}->param("nickname")) { $nickname=encode_utf8($params{session}->param("nickname")); $nickname=~s/\s+/_/g; @@ -265,7 +266,8 @@ sub rcs_recentchanges ($) { foreach my $file (split / /,$info->{files}) { my $diffurl = defined $config{diffurl} ? $config{'diffurl'} : ""; - $diffurl =~ s/\[\[file\]\]/$file/go; + my $efile = uri_escape_utf8($file); + $diffurl =~ s/\[\[file\]\]/$efile/go; $diffurl =~ s/\[\[r2\]\]/$info->{changeset}/go; push @pages, { @@ -361,15 +363,8 @@ sub findtimes ($$) { print $tmpl_fh 'file = "{file}\\n"' . "\n"; foreach my $line (run_or_die('hg', 'log', '--style', $tmpl_filename)) { - # {date} gives output on the form - # 1310694511.0-7200 - # where the first number is UTC Unix timestamp with one - # decimal (decimal always 0, at least on my system) - # followed by local timezone offset from UTC in - # seconds. - if (! defined $date && $line =~ /^\d+\.\d[+-]\d*$/) { - $line =~ s/^(\d+).*/$1/; - $date=$line; + if (! defined $date && $line =~ /^(\d+)/) { + $date=$1; } elsif (! length $line) { $date=undef;