cvs: /php4 php.h php_virtual_cwd.c php_virtual_cwd.h /php4/sapi/apache mod_php4.c
| From: | Andi Gutmans | Date: | Sun, 02 Apr 2000 19:45:03 +0000 |
| Subject: | cvs: /php4 php.h php_virtual_cwd.c php_virtual_cwd.h /php4/sapi/apache mod_php4.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-13016@lists.php.net to get a copy of this message | ||
andi Sun Apr 2 12:45:03 2000 EDT
Modified files:
/php4 php.h php_virtual_cwd.c php_virtual_cwd.h
/php4/sapi/apache mod_php4.c
Log:
- This version of chdir_file should be compatible with the Apache one.
Index: php4/php.h
diff -u php4/php.h:1.75 php4/php.h:1.76
--- php4/php.h:1.75 Sun Apr 2 12:04:59 2000
+++ php4/php.h Sun Apr 2 12:45:02 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php.h,v 1.75 2000/04/02 19:04:59 andi Exp $ */
+/* $Id: php.h,v 1.76 2000/04/02 19:45:02 andi Exp $ */
#ifndef _PHP_H
#define _PHP_H
@@ -291,11 +291,13 @@
#define PHP_GETCWD(buff, size) virtual_getcwd(buff,size)
#define PHP_FOPEN(path, mode) virtual_fopen(path, mode)
#define PHP_CHDIR(path) virtual_chdir(path)
+#define PHP_CHDIR_FILE(path) virtual_chdir_file(path)
#define PHP_GETWD(buf)
#else
#define PHP_GETCWD(buff, size) getcwd(buff,size)
#define PHP_FOPEN(path, mode) fopen(path, mode)
#define PHP_CHDIR(path) chdir(path)
+#define PHP_CHDIR_FILE(path) chdir_file(path)
#define PHP_GETWD(buf) getwd(buf)
#endif
Index: php4/php_virtual_cwd.c
diff -u php4/php_virtual_cwd.c:1.22 php4/php_virtual_cwd.c:1.23
--- php4/php_virtual_cwd.c:1.22 Sun Apr 2 12:28:25 2000
+++ php4/php_virtual_cwd.c Sun Apr 2 12:45:02 2000
@@ -286,6 +286,24 @@
return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok);
}
+int virtual_chdir_file(char *path)
+{
+ int length = strlen(path);
+
+ if (length == 0) {
+ return 1; /* Can't CD to empty string */
+ }
+ while(--length >= 0 && !IS_SLASH(path[length])) {
+ }
+
+ if (length == -1) {
+ return virtual_chdir(path);
+ }
+ path[length] = DEFAULT_SLASH;
+ return virtual_chdir(path);
+}
+
+
int virtual_filepath(char *path, char **filepath)
{
cwd_state new_state;
Index: php4/php_virtual_cwd.h
diff -u php4/php_virtual_cwd.h:1.6 php4/php_virtual_cwd.h:1.7
--- php4/php_virtual_cwd.h:1.6 Sat Apr 1 12:11:01 2000
+++ php4/php_virtual_cwd.h Sun Apr 2 12:45:02 2000
@@ -25,6 +25,7 @@
char *virtual_getcwd_ex(int *length);
char *virtual_getcwd(char *buf, size_t size);
int virtual_chdir(char *path);
+int virtual_chdir_file(char *path);
int virtual_filepath(char *path, char **filepath);
FILE *virtual_fopen(char *path, const char *mode);
Index: php4/sapi/apache/mod_php4.c
diff -u php4/sapi/apache/mod_php4.c:1.39 php4/sapi/apache/mod_php4.c:1.40
--- php4/sapi/apache/mod_php4.c:1.39 Thu Mar 2 06:32:24 2000
+++ php4/sapi/apache/mod_php4.c Sun Apr 2 12:45:02 2000
@@ -17,7 +17,7 @@
| PHP 4.0 patches by Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php4.c,v 1.39 2000/03/02 14:32:24 ssb Exp $ */
+/* $Id: mod_php4.c,v 1.40 2000/04/02 19:45:02 andi Exp $ */
#define NO_REGEX_EXTRA_H
@@ -483,7 +483,7 @@
SG(server_context) = r;
php_save_umask();
- chdir_file(filename);
+ PHP_CHDIR_FILE(filename);
add_common_vars(r);
add_cgi_vars(r);