Do not UTF8-escape "/" in Git's diffurl: cgit does not support this.
parent
5351cdd0f0
commit
d52774dd45
|
@ -660,7 +660,9 @@ sub rcs_recentchanges ($) {
|
|||
my @pages;
|
||||
foreach my $detail (@{ $ci->{'details'} }) {
|
||||
my $file = $detail->{'file'};
|
||||
my $efile = uri_escape_utf8($file);
|
||||
my $efile = join('/',
|
||||
map { uri_escape_utf8($_) } split('/', $file)
|
||||
);
|
||||
|
||||
my $diffurl = defined $config{'diffurl'} ? $config{'diffurl'} : "";
|
||||
$diffurl =~ s/\[\[file\]\]/$efile/go;
|
||||
|
|
25
t/git.t
25
t/git.t
|
@ -16,13 +16,14 @@ BEGIN {
|
|||
die $@;
|
||||
}
|
||||
}
|
||||
use Test::More tests => 18;
|
||||
use Test::More tests => 22;
|
||||
|
||||
BEGIN { use_ok("IkiWiki"); }
|
||||
|
||||
%config=IkiWiki::defaultconfig();
|
||||
$config{rcs} = "git";
|
||||
$config{srcdir} = "$dir/src";
|
||||
$config{diffurl} = '/nonexistent/cgit/plain/[[file]]';
|
||||
IkiWiki::loadplugins();
|
||||
IkiWiki::checkconfig();
|
||||
|
||||
|
@ -94,4 +95,26 @@ is($changes[0]{pages}[0]{"page"}, "newdir/test5");
|
|||
IkiWiki::rcs_remove("newdir/test5.mdwn");
|
||||
IkiWiki::rcs_commit_staged(message => "Remove the 5th page");
|
||||
|
||||
# diffurl escaping
|
||||
ok(mkdir($config{srcdir}."/diffurl_dir"));
|
||||
my $test3 = readfile("t/test1.mdwn");
|
||||
writefile('test3.mdwn', $config{srcdir}."/diffurl_dir", $test3);
|
||||
IkiWiki::rcs_add("diffurl_dir/test3.mdwn");
|
||||
IkiWiki::rcs_commit(
|
||||
file => "diffurl_dir/test3.mdwn",
|
||||
message => "Added a page in diffurl_dir",
|
||||
token => "moo",
|
||||
);
|
||||
|
||||
@changes = IkiWiki::rcs_recentchanges(5);
|
||||
|
||||
is($#changes, 4);
|
||||
is($changes[0]{pages}[0]{"page"}, "diffurl_dir/test3");
|
||||
|
||||
unlike(
|
||||
$changes[0]{pages}[0]{"diffurl"},
|
||||
qr{%2F}m,
|
||||
q{path separators are preserved when UTF-8scaping filename}
|
||||
);
|
||||
|
||||
system "rm -rf $dir";
|
||||
|
|
Loading…
Reference in New Issue