cvs: php4 / php.h php_virtual_cwd.c php_virtual_cwd.h /ext/standard/ dir.c
[email protected] ("Stanislav Malyshev") Sun, 04 Jun 2000 08:29:11 -0000
| Newsgroups | php.version4 |
|---|---|
| Message-ID | <cvsstas960107351@cvsserver> |
stas Sun Jun 4 01:29:11 2000 EDT
Modified files:
/php4 php.h php_virtual_cwd.c php_virtual_cwd.h
/php4/ext/standard dir.c
Log:
add opendir to VIRTUAL_DIR
Index: php4/php.h
diff -u php4/php.h:1.101 php4/php.h:1.102
--- php4/php.h:1.101 Fri Jun 2 05:35:53 2000
+++ php4/php.h Sun Jun 4 01:29:11 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php.h,v 1.101 2000/06/02 12:35:53 zeev Exp $ */
+/* $Id: php.h,v 1.102 2000/06/04 08:29:11 stas Exp $ */
#ifndef _PHP_H
#define _PHP_H
@@ -306,6 +306,7 @@
#define V_UNLINK(path) virtual_unlink(path)
#define V_MKDIR(pathname, mode) virtual_mkdir(pathname, mode)
#define V_RMDIR(pathname) virtual_rmdir(pathname)
+#define V_OPENDIR(pathname) virtual_opendir(pathname)
#else
#define V_GETCWD(buff, size) getcwd(buff,size)
#define V_FOPEN(path, mode) fopen(path, mode)
@@ -319,6 +320,7 @@
#define V_UNLINK(path) unlink(path)
#define V_MKDIR(pathname, mode) mkdir(pathname, mode)
#define V_RMDIR(pathname) rmdir(pathname)
+#define V_OPENDIR(pathname) opendir(pathname)
#endif
#include "zend_constants.h"
Index: php4/php_virtual_cwd.c
diff -u php4/php_virtual_cwd.c:1.50 php4/php_virtual_cwd.c:1.51
--- php4/php_virtual_cwd.c:1.50 Sun Jun 4 00:59:32 2000
+++ php4/php_virtual_cwd.c Sun Jun 4 01:29:11 2000
@@ -533,6 +533,21 @@
return retval;
}
+CWD_API DIR *virtual_opendir(const char *pathname)
+{
+ cwd_state new_state;
+ DIR *retval;
+ CWDLS_FETCH();
+
+ CWD_STATE_COPY(&new_state, &CWDG(cwd));
+ virtual_file_ex(&new_state, pathname, NULL);
+
+ retval = opendir(new_state.cwd);
+
+ CWD_STATE_FREE(&new_state);
+ return retval;
+}
+
#if 0
main(void)
Index: php4/php_virtual_cwd.h
diff -u php4/php_virtual_cwd.h:1.23 php4/php_virtual_cwd.h:1.24
--- php4/php_virtual_cwd.h:1.23 Tue May 23 10:02:21 2000
+++ php4/php_virtual_cwd.h Sun Jun 4 01:29:11 2000
@@ -11,6 +11,13 @@
#include <unistd.h>
#endif
+#ifdef ZEND_WIN32
+#include "win32/readdir.h"
+#else
+#ifdef HAVE_DIRENT_H
+#include <dirent.h>
+#endif
+#endif
#ifdef PHP_EXPORTS
#define CWD_EXPORTS
@@ -51,6 +58,7 @@
CWD_API int virtual_unlink(const char *path);
CWD_API int virtual_mkdir(const char *pathname, mode_t mode);
CWD_API int virtual_rmdir(const char *pathname);
+CWD_API DIR *virtual_opendir(const char *pathname);
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path);
Index: php4/ext/standard/dir.c
diff -u php4/ext/standard/dir.c:1.35 php4/ext/standard/dir.c:1.36
--- php4/ext/standard/dir.c:1.35 Sun Jun 4 00:57:40 2000
+++ php4/ext/standard/dir.c Sun Jun 4 01:29:11 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dir.c,v 1.35 2000/06/04 07:57:40 stas Exp $ */
+/* $Id: dir.c,v 1.36 2000/06/04 08:29:11 stas Exp $ */
/* {{{ includes/startup/misc */
@@ -141,7 +141,7 @@
dirp = emalloc(sizeof(php_dir));
- dirp->dir = opendir((*arg)->value.str.val);
+ dirp->dir = V_OPENDIR((*arg)->value.str.val);
if (! dirp->dir) {
efree(dirp);