]> granicus.if.org Git - php/commitdiff
- add expand_filepath_with_mode (not used anywhere yet but will be used for file...
authorPierre Joye <pajoye@php.net>
Mon, 25 Jul 2011 16:50:07 +0000 (16:50 +0000)
committerPierre Joye <pajoye@php.net>
Mon, 25 Jul 2011 16:50:07 +0000 (16:50 +0000)
UPGRADING.INTERNALS
main/fopen_wrappers.c
main/fopen_wrappers.h

index a230a4db261563dd039e194ffb5870c193cd366a..e9d0adf5541f6fe5a4b7392c1080c3eb454b3bf9 100644 (file)
@@ -11,6 +11,7 @@ UPGRADE NOTES - PHP X.Y
   f. streams that enclose private streams
   g. leak_variable
   h. API Signature changes
+  i. new TSRM function expand_filepath_with_mode
 
 2. Build system changes
   a. Unix build system changes
@@ -184,6 +185,9 @@ it increments the refcounts of those objects instead.
 . php_unescape_html_entities
   PHPAPI char *php_unescape_html_entities(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset TSRMLS_DC);
 
+  i. 
+  PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC);
+  expand_filepath_with_mode lets define how realpath will behave, using one of the existing mode: CWD_EXPAND , CWD_FILEPATH or CWD_REALPATH.
 
 ========================
 2. Build system changes
index 812d591767b2127eb786e65f21c838c6aeec201d..8766aaf893997d51a17d22c64180c0962aa1abac 100644 (file)
@@ -740,6 +740,14 @@ PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC)
 /* {{{ expand_filepath_ex
  */
 PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC)
+{
+       return expand_filepath_with_mode(filepath, real_path, relative_to, relative_to_len, CWD_FILEPATH TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ expand_filepath_use_realpath
+ */
+PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC)
 {
        cwd_state new_state;
        char cwd[MAXPATHLEN];
@@ -785,7 +793,7 @@ PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const cha
        new_state.cwd = strdup(cwd);
        new_state.cwd_length = strlen(cwd);
 
-       if (virtual_file_ex(&new_state, filepath, NULL, CWD_FILEPATH TSRMLS_CC)) {
+       if (virtual_file_ex(&new_state, filepath, NULL, realpath_mode TSRMLS_CC)) {
                free(new_state.cwd);
                return NULL;
        }
index 842780a1b2102652a40ce0a21ebb1c313bb761e1..a5e97294cf32d2b81a93060dd99e2cff738ef819 100644 (file)
@@ -28,6 +28,7 @@ BEGIN_EXTERN_C()
 PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC);
 PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC);
 PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC);
+PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC);
 
 PHPAPI int php_check_open_basedir(const char *path TSRMLS_DC);
 PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC);