]> granicus.if.org Git - php/commitdiff
@Added -C command-line option to avoid chdir to the script's directory (Stig)
authorStig Bakken <ssb@php.net>
Mon, 16 Apr 2001 23:20:47 +0000 (23:20 +0000)
committerStig Bakken <ssb@php.net>
Mon, 16 Apr 2001 23:20:47 +0000 (23:20 +0000)
main/SAPI.h
main/fopen_wrappers.c
sapi/cgi/cgi_main.c

index 535f24334f9baf2f9f1e5d04fea75ab633e288b0..a9ce5922aecc45ed2953743e26226182d249d1a8 100644 (file)
@@ -25,6 +25,8 @@
 #include "zend_operators.h"
 #include <sys/stat.h>
 
+#define SAPI_OPTION_NO_CHDIR 1
+
 #define SAPI_POST_BLOCK_SIZE 4000
 
 #ifdef PHP_WIN32
@@ -109,6 +111,7 @@ typedef struct {
        char *default_charset;
        HashTable *rfc1867_uploaded_files;
        long post_max_size;
+    int options;
 } sapi_globals_struct;
 
 
index 63c0aa78d63f4d5d86434e6957e33bab66a6901e..af541f417e0cdd7bd540a0f07e59ec8c438eee8e 100644 (file)
@@ -348,7 +348,9 @@ PHPAPI FILE *php_fopen_primary_script(void)
                STR_FREE(SG(request_info).path_translated);     /* for same reason as above */
                return NULL;
        }
-       V_CHDIR_FILE(filename);
+    if (!(SG(options) & SAPI_OPTION_NO_CHDIR)) {
+               V_CHDIR_FILE(filename);
+    }
        SG(request_info).path_translated = filename;
 
        return fp;
index 8b9780dd9663b3f71ea2046fbd51d9557251029b..58090fee3cd01986ee7cfe212e9eb8de02d08a32 100644 (file)
@@ -80,7 +80,7 @@
 extern char *ap_php_optarg;
 extern int ap_php_optind;
 
-#define OPTSTRING "ac:d:ef:g:hilmnqs?vz:"
+#define OPTSTRING "aCc:d:ef:g:hilmnqs?vz:"
 
 static int _print_module_info ( zend_module_entry *module, void *arg ) {
        php_printf("%s\n", module->name);
@@ -246,6 +246,7 @@ static void php_cgi_usage(char *argv0)
                                "  -s             Display colour syntax highlighted source.\n"
                                "  -f <file>      Parse <file>.  Implies `-q'\n"
                                "  -v             Version number\n"
+                "  -C             Do not chdir to the script's directory\n"
                                "  -c <path>      Look for php.ini file in this directory\n"
 #if SUPPORT_INTERACTIVE
                                "  -a             Run interactively\n"
@@ -525,7 +526,10 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
 #endif
                                        break;
                                
-                         case 'd':     /* define ini entries on command line */
+                       case 'C': /* don't chdir to the script directory */
+                                       SG(options) |= SAPI_OPTION_NO_CHDIR;
+                                       break;
+                       case 'd': /* define ini entries on command line */
                                        define_command_line_ini_entry(ap_php_optarg);
                                        break;