cvs: /php4 php.h php_virtual_cwd.c php_virtual_cwd.h /php4/sapi/apache mod_php4.c

From: 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);

« previous php.version4 (#13016) next »