/**
* Module containing the strategies to handle
* the administration of the current directory
*/
module php/reflect/inclusion/currentdir
strategies
/**
* Main strategy
*/
find-file-in-current-directory(|filename) =
find-file-in-directory(add-current-dir | filename)
/**
* Adds the current directory in front of a path
* if the path is relative. Otherwise it will build the
* path.
*
* @type String -> String
*/
add-current-dir =
?path
; add-dir(get-php-current-directory | path )
/**
* Resets the current directory and removes
* all the old current directories
*/
php-clean-current-directory =
<rm-config> "php-old-current-directory"
; <rm-config> "php-current-directory"
/**
* Sets the current directory for the process.
*
* @param path String, the path to the working directory
*/
set-php-current-directory(|path) =
save-php-current-directory
; set-php-direcory(|"current", path)
/**
* Retrieves the current directory for the process.
* The default value is the standard current working directory
*
* @type _ -> String
*/
get-php-current-directory =
get-php-direcory(|"current")
/**
* Saves the current directory. The directory is saved in such
* a way that one can return to the old current directory by
* using 'prev-php-current-directory'.
*/
save-php-current-directory =
( <get-config> "php-old-current-directory"
; ![<get-php-current-directory> | <id> ]
; <set-config> ("php-old-current-directory",<id>)
)
<+ //we did not yet get into another directory
<set-config> ("php-old-current-directory",[ <get-php-current-directory> ])
/**
* Resets the current directory to the directory before the
* current directory. Should be used together with 'save-php-current-directory'
* to taverse directories.
*/
prev-php-current-directory =
<get-config> "php-old-current-directory"
; ?[head | tail]
; <set-config> ("php-current-directory",head)
; <set-config> ("php-old-current-directory",tail)