Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(no commit message)
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
darcs.pm
diff --git
a/IkiWiki/Plugin/darcs.pm
b/IkiWiki/Plugin/darcs.pm
index 0dfc8708daee02a78d55794ba5150beb7e9b8a96..9dccd95a43766c34c144ad51e6076418f97b3d54 100644
(file)
--- a/
IkiWiki/Plugin/darcs.pm
+++ b/
IkiWiki/Plugin/darcs.pm
@@
-3,6
+3,7
@@
package IkiWiki::Plugin::darcs;
use warnings;
use strict;
use warnings;
use strict;
+use URI::Escape q{uri_escape_utf8};
use IkiWiki;
sub import {
use IkiWiki;
sub import {
@@
-146,10
+147,10
@@
sub commitauthor (@) {
my $author="anon\@web";
if (defined $params{session}) {
if (defined $params{session}->param("name")) {
my $author="anon\@web";
if (defined $params{session}) {
if (defined $params{session}->param("name")) {
- return
$params{session}->param("name"
).'@web';
+ return
IkiWiki::cloak($params{session}->param("name")
).'@web';
}
elsif (defined $params{session}->remote_addr()) {
}
elsif (defined $params{session}->remote_addr()) {
- return
$params{session}->remote_addr(
).'@web';
+ return
IkiWiki::cloak($params{session}->remote_addr()
).'@web';
}
}
return 'anon@web';
}
}
return 'anon@web';
@@
-336,7
+337,8
@@
sub rcs_recentchanges ($) {
foreach my $f (@files) {
my $d = defined $config{'diffurl'} ? $config{'diffurl'} : "";
foreach my $f (@files) {
my $d = defined $config{'diffurl'} ? $config{'diffurl'} : "";
- $d =~ s/\[\[file\]\]/$f/go;
+ my $ef = uri_escape_utf8($f);
+ $d =~ s/\[\[file\]\]/$ef/go;
$d =~ s/\[\[hash\]\]/$hash/go;
push @pg, {
$d =~ s/\[\[hash\]\]/$hash/go;
push @pg, {
@@
-373,11
+375,14
@@
sub rcs_recentchanges ($) {
return @ret;
}
return @ret;
}
-sub rcs_diff ($) {
+sub rcs_diff ($
;$
) {
my $rev=shift;
my $rev=shift;
+ my $maxlines=shift;
my @lines;
my @lines;
- foreach my $line (silentsystem("darcs", "diff", "--match", "hash ".$rev)) {
+ my $repodir=$config{srcdir};
+ foreach my $line (`darcs diff --repodir $repodir --match 'hash $rev'`) {
if (@lines || $line=~/^diff/) {
if (@lines || $line=~/^diff/) {
+ last if defined $maxlines && @lines == $maxlines;
push @lines, $line."\n";
}
}
push @lines, $line."\n";
}
}
@@
-396,14
+401,11
@@
sub rcs_getctime ($) {
eval q{use XML::Simple};
local $/=undef;
eval q{use XML::Simple};
local $/=undef;
- my $filer=substr($file, length($config{srcdir}));
- $filer =~ s:^[/]+::;
-
my $child = open(LOG, "-|");
if (! $child) {
exec("darcs", "changes", "--xml", "--reverse",
my $child = open(LOG, "-|");
if (! $child) {
exec("darcs", "changes", "--xml", "--reverse",
- "--repodir", $config{srcdir}, $file
r
)
- || error("'darcs changes $file
r
' failed to run");
+ "--repodir", $config{srcdir}, $file)
+ || error("'darcs changes $file' failed to run");
}
my $data;
}
my $data;
@@
-418,7
+420,7
@@
sub rcs_getctime ($) {
my $datestr = $log->{patch}[0]->{local_date};
if (! defined $datestr) {
my $datestr = $log->{patch}[0]->{local_date};
if (! defined $datestr) {
- warn "failed to get ctime for $file
r
";
+ warn "failed to get ctime for $file";
return 0;
}
return 0;
}