diff options
author | Andi Gutmans <andi@php.net> | 2000-10-26 05:21:52 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2000-10-26 05:21:52 +0000 |
commit | fd7284a66509ecf715cef2452880352b3d71e878 (patch) | |
tree | 0d58be053643f6e67427099bf2e0834d2c86865f | |
parent | e5b0945e4c6c41cd52bd35a445a8ce1a691940aa (diff) | |
download | php-git-fd7284a66509ecf715cef2452880352b3d71e878.tar.gz |
- Add V_RENAME() by "Daniel Beulshausen" <daniel@php4win.de>.
- It is untested and all places which use rename() in PHP should now use
- V_RENAME().
-rw-r--r-- | TSRM/tsrm_virtual_cwd.c | 22 | ||||
-rw-r--r-- | TSRM/tsrm_virtual_cwd.h | 3 |
2 files changed, 25 insertions, 0 deletions
diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index 64d58f49bf..a394e12128 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -574,6 +574,28 @@ CWD_API int virtual_creat(const char *path, mode_t mode) return f; } +CWD_API int virtual_rename(char *oldname, char *newname) +{ + cwd_state old_state; + cwd_state new_state; + int retval; + CWDLS_FETCH(); + + CWD_STATE_COPY(&old_state, &CWDG(cwd)); + virtual_file_ex(&old_state, oldname, NULL); + oldname = old_state.cwd; + + CWD_STATE_COPY(&new_state, &CWDG(cwd)); + virtual_file_ex(&new_state, newname, NULL); + newname = new_state.cwd; + + retval = rename(oldname, newname); + + CWD_STATE_FREE(&old_state); + CWD_STATE_FREE(&new_state); + + return retval; +} CWD_API int virtual_stat(const char *path, struct stat *buf) { diff --git a/TSRM/tsrm_virtual_cwd.h b/TSRM/tsrm_virtual_cwd.h index 1ba78a6e4a..db0afdd897 100644 --- a/TSRM/tsrm_virtual_cwd.h +++ b/TSRM/tsrm_virtual_cwd.h @@ -104,6 +104,7 @@ CWD_API char *virtual_realpath(const char *path, char *real_path); CWD_API FILE *virtual_fopen(const char *path, const char *mode); CWD_API int virtual_open(const char *path, int flags, ...); CWD_API int virtual_creat(const char *path, mode_t mode); +CWD_API int virtual_rename(char *oldname, char *newname); CWD_API int virtual_stat(const char *path, struct stat *buf); #ifndef TSRM_WIN32 CWD_API int virtual_lstat(const char *path, struct stat *buf); @@ -159,6 +160,7 @@ typedef struct _virtual_cwd_globals { #define V_CHDIR_FILE(path) virtual_chdir_file(path, virtual_chdir) #define V_GETWD(buf) #define V_REALPATH(path,real_path) virtual_realpath(path,real_path) +#define V_RENAME(oldname,newname) virtual_rename(oldname,newname) #define V_STAT(path, buff) virtual_stat(path, buff) #ifdef TSRM_WIN32 #define V_LSTAT(path, buff) virtual_stat(path, buff) @@ -184,6 +186,7 @@ typedef struct _virtual_cwd_globals { #define V_FOPEN(path, mode) fopen(path, mode) #define V_OPEN(open_args) open open_args #define V_CREAT(path, mode) creat(path, mode) +#define V_RENAME(oldname,newname) rename(oldname,newname) #define V_CHDIR(path) chdir(path) #define V_CHDIR_FILE(path) virtual_chdir_file(path, chdir) #define V_GETWD(buf) getwd(buf) |