remove 2 argument form of file_pruned
parent
6d063a6698
commit
cff3937b68
|
@ -1843,15 +1843,8 @@ sub deptype (@) {
|
||||||
}
|
}
|
||||||
|
|
||||||
my $file_prune_regexp;
|
my $file_prune_regexp;
|
||||||
sub file_pruned ($;$) {
|
sub file_pruned ($) {
|
||||||
my $file=shift;
|
my $file=shift;
|
||||||
if (@_) {
|
|
||||||
require File::Spec;
|
|
||||||
$file=File::Spec->canonpath($file);
|
|
||||||
my $base=File::Spec->canonpath(shift);
|
|
||||||
return if $file eq $base;
|
|
||||||
$file =~ s#^\Q$base\E/+##;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined $config{include} && length $config{include}) {
|
if (defined $config{include} && length $config{include}) {
|
||||||
return 0 if $file =~ m/$config{include}/;
|
return 0 if $file =~ m/$config{include}/;
|
||||||
|
|
|
@ -1,52 +1,31 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
use warnings;
|
use warnings;
|
||||||
use strict;
|
use strict;
|
||||||
use Test::More tests => 54;
|
use Test::More tests => 27;
|
||||||
|
|
||||||
BEGIN { use_ok("IkiWiki"); }
|
BEGIN { use_ok("IkiWiki"); }
|
||||||
|
|
||||||
%config=IkiWiki::defaultconfig();
|
%config=IkiWiki::defaultconfig();
|
||||||
|
|
||||||
ok(IkiWiki::file_pruned("src/.htaccess", "src"));
|
|
||||||
ok(IkiWiki::file_pruned(".htaccess"));
|
ok(IkiWiki::file_pruned(".htaccess"));
|
||||||
ok(IkiWiki::file_pruned("src/.ikiwiki/", "src"));
|
|
||||||
ok(IkiWiki::file_pruned(".ikiwiki/"));
|
ok(IkiWiki::file_pruned(".ikiwiki/"));
|
||||||
ok(IkiWiki::file_pruned("src/.ikiwiki/index", "src"));
|
|
||||||
ok(IkiWiki::file_pruned(".ikiwiki/index"));
|
ok(IkiWiki::file_pruned(".ikiwiki/index"));
|
||||||
ok(IkiWiki::file_pruned("src/CVS/foo", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("CVS/foo"));
|
ok(IkiWiki::file_pruned("CVS/foo"));
|
||||||
ok(IkiWiki::file_pruned("src/subdir/CVS/foo", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("subdir/CVS/foo"));
|
ok(IkiWiki::file_pruned("subdir/CVS/foo"));
|
||||||
ok(IkiWiki::file_pruned("src/.svn", "src"));
|
|
||||||
ok(IkiWiki::file_pruned(".svn"));
|
ok(IkiWiki::file_pruned(".svn"));
|
||||||
ok(IkiWiki::file_pruned("src/subdir/.svn", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("subdir/.svn"));
|
ok(IkiWiki::file_pruned("subdir/.svn"));
|
||||||
ok(IkiWiki::file_pruned("src/subdir/.svn/foo", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("subdir/.svn/foo"));
|
ok(IkiWiki::file_pruned("subdir/.svn/foo"));
|
||||||
ok(IkiWiki::file_pruned("src/.git", "src"));
|
|
||||||
ok(IkiWiki::file_pruned(".git"));
|
ok(IkiWiki::file_pruned(".git"));
|
||||||
ok(IkiWiki::file_pruned("src/subdir/.git", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("subdir/.git"));
|
ok(IkiWiki::file_pruned("subdir/.git"));
|
||||||
ok(IkiWiki::file_pruned("src/subdir/.git/foo", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("subdir/.git/foo"));
|
ok(IkiWiki::file_pruned("subdir/.git/foo"));
|
||||||
ok(! IkiWiki::file_pruned("src/svn/fo", "src"));
|
|
||||||
ok(! IkiWiki::file_pruned("svn/fo"));
|
ok(! IkiWiki::file_pruned("svn/fo"));
|
||||||
ok(! IkiWiki::file_pruned("src/git", "src"));
|
|
||||||
ok(! IkiWiki::file_pruned("git"));
|
ok(! IkiWiki::file_pruned("git"));
|
||||||
ok(! IkiWiki::file_pruned("src/index.mdwn", "src"));
|
|
||||||
ok(! IkiWiki::file_pruned("index.mdwn"));
|
ok(! IkiWiki::file_pruned("index.mdwn"));
|
||||||
ok(! IkiWiki::file_pruned("src/index.", "src"));
|
|
||||||
ok(! IkiWiki::file_pruned("index."));
|
ok(! IkiWiki::file_pruned("index."));
|
||||||
|
|
||||||
# these are ok because while the filename starts with ".", the canonpathed
|
|
||||||
# version does not
|
|
||||||
ok(! IkiWiki::file_pruned("src/.", "src"));
|
|
||||||
ok(! IkiWiki::file_pruned("src/./", "src"));
|
|
||||||
# OTOH, without a srcdir, no canonpath, so they're not allowed.
|
|
||||||
ok(IkiWiki::file_pruned("."));
|
ok(IkiWiki::file_pruned("."));
|
||||||
ok(IkiWiki::file_pruned("./"));
|
ok(IkiWiki::file_pruned("./"));
|
||||||
|
|
||||||
# Without a srcdir, absolute filenames are not allowed.
|
# absolute filenames are not allowed.
|
||||||
ok(IkiWiki::file_pruned("/etc/passwd"));
|
ok(IkiWiki::file_pruned("/etc/passwd"));
|
||||||
ok(IkiWiki::file_pruned("//etc/passwd"));
|
ok(IkiWiki::file_pruned("//etc/passwd"));
|
||||||
ok(IkiWiki::file_pruned("/"));
|
ok(IkiWiki::file_pruned("/"));
|
||||||
|
@ -54,22 +33,8 @@ ok(IkiWiki::file_pruned("//"));
|
||||||
ok(IkiWiki::file_pruned("///"));
|
ok(IkiWiki::file_pruned("///"));
|
||||||
|
|
||||||
|
|
||||||
ok(IkiWiki::file_pruned("src/..", "src"));
|
|
||||||
ok(IkiWiki::file_pruned(".."));
|
ok(IkiWiki::file_pruned(".."));
|
||||||
ok(IkiWiki::file_pruned("src/../", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("../"));
|
|
||||||
ok(IkiWiki::file_pruned("src/../", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("../"));
|
ok(IkiWiki::file_pruned("../"));
|
||||||
|
|
||||||
# This is perhaps counterintuitive.
|
|
||||||
ok(! IkiWiki::file_pruned("src", "src"));
|
|
||||||
|
|
||||||
# Dots, etc, in the srcdir are ok.
|
|
||||||
ok(! IkiWiki::file_pruned("/.foo/src", "/.foo/src"));
|
|
||||||
ok(IkiWiki::file_pruned("/.foo/src/.foo/src", "/.foo/src"));
|
|
||||||
ok(! IkiWiki::file_pruned("/.foo/src/index.mdwn", "/.foo/src/index.mdwn"));
|
|
||||||
|
|
||||||
ok(IkiWiki::file_pruned("src/y/foo.dpkg-tmp", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("y/foo.dpkg-tmp"));
|
ok(IkiWiki::file_pruned("y/foo.dpkg-tmp"));
|
||||||
ok(IkiWiki::file_pruned("src/y/foo.ikiwiki-new", "src"));
|
|
||||||
ok(IkiWiki::file_pruned("y/foo.ikiwiki-new"));
|
ok(IkiWiki::file_pruned("y/foo.ikiwiki-new"));
|
||||||
|
|
Loading…
Reference in New Issue