summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2000-05-23 14:36:27 +0000
committerAndi Gutmans <andi@php.net>2000-05-23 14:36:27 +0000
commit521f03c184fad08cc6943decd53df29f4a3ed830 (patch)
tree5e8f40e3843a91dc461b2e329d67ede4ac12252e /main
parent0eb51100b77996efbf0a728efe55ded996814025 (diff)
downloadphp-git-521f03c184fad08cc6943decd53df29f4a3ed830.tar.gz
- Support virtual unlink()
Diffstat (limited to 'main')
-rw-r--r--main/php.h2
-rw-r--r--main/php_virtual_cwd.c15
-rw-r--r--main/php_virtual_cwd.h2
3 files changed, 19 insertions, 0 deletions
diff --git a/main/php.h b/main/php.h
index cdbbaabeb2..9cc2f8b040 100644
--- a/main/php.h
+++ b/main/php.h
@@ -308,6 +308,7 @@ PHPAPI int cfg_get_string(char *varname, char **result);
#else
#define V_LSTAT(path, buff) virtual_lstat(path, buff)
#endif
+#define V_UNLINK(path) virtual_unlink(path)
#else
#define V_GETCWD(buff, size) getcwd(buff,size)
#define V_FOPEN(path, mode) fopen(path, mode)
@@ -318,6 +319,7 @@ PHPAPI int cfg_get_string(char *varname, char **result);
#define V_GETWD(buf) getwd(buf)
#define V_STAT(path, buff) stat(path, buff)
#define V_LSTAT(path, buff) lstat(path, buff)
+#define V_UNLINK(path) unlink(path)
#endif
#include "zend_constants.h"
diff --git a/main/php_virtual_cwd.c b/main/php_virtual_cwd.c
index 3a1097963c..765d3215d9 100644
--- a/main/php_virtual_cwd.c
+++ b/main/php_virtual_cwd.c
@@ -471,6 +471,21 @@ CWD_API int virtual_lstat(const char *path, struct stat *buf)
#endif
+CWD_API int virtual_unlink(const char *path)
+{
+ cwd_state new_state;
+ int retval;
+ CWDLS_FETCH();
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+
+ virtual_file_ex(&new_state, path, NULL);
+
+ retval = unlink(new_state.cwd);
+ CWD_STATE_FREE(&new_state);
+ return retval;
+}
+
#if 0
main(void)
diff --git a/main/php_virtual_cwd.h b/main/php_virtual_cwd.h
index 5622c2d0fd..c893c8d020 100644
--- a/main/php_virtual_cwd.h
+++ b/main/php_virtual_cwd.h
@@ -48,6 +48,8 @@ CWD_API int virtual_stat(const char *path, struct stat *buf);
#ifndef ZEND_WIN32
CWD_API int virtual_lstat(const char *path, struct stat *buf);
#endif
+CWD_API int virtual_unlink(const char *path);
+
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path);
ZEND_BEGIN_MODULE_GLOBALS(cwd)