don't check for file existance in fullpath() by default

In most (all) calls to fullpath() the existance of the resulting path is not
important or is checked externally, so checking inside fullpath() is a waste
of CPU cycles.

darcs-hash:20081213083355-7ad00-4987a85950a13e5d3c527b3b17b1092e0fa1c567.gz
This commit is contained in:
Andreas Gohr 2008-12-13 09:33:55 +01:00
parent 58e3a7bfa7
commit b328697d6c
1 changed files with 4 additions and 4 deletions

View File

@ -464,7 +464,7 @@ EOT;
* @author <richpageau at yahoo dot co dot uk>
* @link http://de3.php.net/manual/en/function.realpath.php#75992
*/
function fullpath($path){
function fullpath($path,$exists=false){
static $run = 0;
$root = '';
$iswin = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' || $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
@ -490,7 +490,7 @@ function fullpath($path){
$path = $base.'/'.$path;
if($run == 0){ // avoid endless recursion when base isn't absolute for some reason
$run++;
return fullpath($path,1);
return fullpath($path,$exists);
}
}
$run = 0;
@ -508,8 +508,8 @@ function fullpath($path){
}
$finalpath = $root.implode('/', $newpath);
// check for existance (except when unit testing)
if(!defined('DOKU_UNITTEST') && !@file_exists($finalpath)) {
// check for existance when needed (except when unit testing)
if($exists && !defined('DOKU_UNITTEST') && !@file_exists($finalpath)) {
return false;
}
return $finalpath;