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
Revert spam
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
autoindex.pm
diff --git
a/IkiWiki/Plugin/autoindex.pm
b/IkiWiki/Plugin/autoindex.pm
index 1d0612e846e87e3738aea2bf945c258609bb3496..11595e217cdccf6d7bb571a3bb9f6c79ef4ddd7f 100644
(file)
--- a/
IkiWiki/Plugin/autoindex.pm
+++ b/
IkiWiki/Plugin/autoindex.pm
@@
-33,18
+33,25
@@
sub genindex ($) {
sub refresh () {
eval q{use File::Find};
error($@) if $@;
sub refresh () {
eval q{use File::Find};
error($@) if $@;
+ eval q{use Cwd};
+ error($@) if $@;
+ my $origdir=getcwd();
my (%pages, %dirs);
foreach my $dir ($config{srcdir}, @{$config{underlaydirs}}, $config{underlaydir}) {
my (%pages, %dirs);
foreach my $dir ($config{srcdir}, @{$config{underlaydirs}}, $config{underlaydir}) {
+ chdir($dir) || next;
+
find({
no_chdir => 1,
wanted => sub {
find({
no_chdir => 1,
wanted => sub {
- $_=decode_utf8($_);
- if (IkiWiki::file_pruned($_)) {
+ my $file=decode_utf8($_);
+ $file=~s/^\.\/?//;
+ return unless length $file;
+ if (IkiWiki::file_pruned($file)) {
$File::Find::prune=1;
}
elsif (! -l $_) {
$File::Find::prune=1;
}
elsif (! -l $_) {
- my ($f)
=
/$config{wiki_file_regexp}/; # untaint
+ my ($f)
= $file =~
/$config{wiki_file_regexp}/; # untaint
return unless defined $f;
return if $f =~ /\._([^.]+)$/; # skip internal page
if (! -d _) {
return unless defined $f;
return if $f =~ /\._([^.]+)$/; # skip internal page
if (! -d _) {
@@
-55,7
+62,9
@@
sub refresh () {
}
}
}
}
}
}
- }, $dir);
+ }, '.');
+
+ chdir($origdir) || die "chdir $origdir: $!";
}
my %deleted;
}
my %deleted;
@@
-108,8
+117,8
@@
sub refresh () {
}
if ($config{rcs}) {
IkiWiki::rcs_commit_staged(
}
if ($config{rcs}) {
IkiWiki::rcs_commit_staged(
- gettext("automatic index generation"),
-
undef, undef
);
+
message =>
gettext("automatic index generation"),
+ );
IkiWiki::enable_commit_hook();
}
}
IkiWiki::enable_commit_hook();
}
}