optimise single dot detection
Since it already looks for things starting with a dot, I was able to avoid matching against the string twice. This also fixes a minor bug; $from may not be defined. Avoid uninitialized value warnings in this case.master
parent
7d1cc3a020
commit
991d01f5b5
11
IkiWiki.pm
11
IkiWiki.pm
|
@ -2401,15 +2401,18 @@ package IkiWiki::PageSpec;
|
||||||
sub derel ($$) {
|
sub derel ($$) {
|
||||||
my $path=shift;
|
my $path=shift;
|
||||||
my $from=shift;
|
my $from=shift;
|
||||||
if ($path eq '.') {
|
|
||||||
$path = $from;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($path =~ m!^\./!) {
|
if ($path =~ m!^\.(/|$)!) {
|
||||||
|
if ($1) {
|
||||||
$from=~s#/?[^/]+$## if defined $from;
|
$from=~s#/?[^/]+$## if defined $from;
|
||||||
$path=~s#^\./##;
|
$path=~s#^\./##;
|
||||||
$path="$from/$path" if defined $from && length $from;
|
$path="$from/$path" if defined $from && length $from;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$path = $from;
|
||||||
|
$path = "" unless defined $path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue