From: Andrei Zmievski Date: Tue, 1 Feb 2000 06:06:03 +0000 (+0000) Subject: Implemented realpath(). X-Git-Tag: BEFORE_SAPIFICATION_FEB_10_2000~129 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91bb21c52262d850d509ef51f8f87870eb5690da;p=php Implemented realpath(). @ Added realpath() function. (Andrei) --- diff --git a/TODO b/TODO index d460b01ee6..d110d7d434 100644 --- a/TODO +++ b/TODO @@ -49,7 +49,6 @@ ext/standard ------------ * strpad() (Andrei) * stri_replace() (Andrei) - * realpath() (Andrei) * socket_get_status (Andrei) * comparing arrays semantically (like Python) (Andrei) * NOT binary safe: diff --git a/ext/standard/file.c b/ext/standard/file.c index c5aa4a2201..145c92589b 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -86,6 +86,8 @@ extern int fclose(); #define MAP_FAILED ((void *) -1) #endif +#include "php_realpath.h" + /* }}} */ /* {{{ ZTS-stuff / Globals / Prototypes */ @@ -243,6 +245,7 @@ function_entry file_functions[] = { #if HAVE_SYS_TIME_H PHP_FE(set_socket_timeout, NULL) #endif + PHP_FE(realpath, NULL) #if 0 /* needs to be rethought 991221 thies@digicol.de */ PHP_FE(fd_set, NULL) PHP_FE(fd_isset, NULL) @@ -1687,6 +1690,26 @@ PHP_FUNCTION(fgetcsv) { /* }}} */ +/* {{{ proto string realpath(string path) + Returns the resolved path */ +PHP_FUNCTION(realpath) +{ + zval **path; + char resolved_path[MAXPATHLEN]; + + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &path) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(path); + if (php_realpath((*path)->value.str.val, resolved_path)) { + RETURN_STRING(resolved_path, 1); + } else { + RETURN_FALSE; + } +} +/* }}} */ + #if 0 static fd_set readfd; diff --git a/ext/standard/file.h b/ext/standard/file.h index 231935ef56..e0e05cf98f 100644 --- a/ext/standard/file.h +++ b/ext/standard/file.h @@ -71,6 +71,7 @@ PHP_FUNCTION(flock); PHP_FUNCTION(fd_set); PHP_FUNCTION(fd_isset); PHP_FUNCTION(select); +PHP_FUNCTION(realpath); PHPAPI int php_set_sock_blocking(int socketd, int block); PHPAPI int php_file_le_fopen(void);