helly Tue Nov 12 15:56:47 2002 EDT Modified files: /php4/sapi/cgi cgi_main.c /php4/sapi/cli php_cli.c /php4/main php_ini.c SAPI.h Log: Implemented -n switch to skip parsing ini at startup as suggested by Wez. #The switch 'n' was planned to be used for beautifying....delete n to make #clear these functions do not have a switch yet. Index: php4/sapi/cgi/cgi_main.c diff -u php4/sapi/cgi/cgi_main.c:1.189 php4/sapi/cgi/cgi_main.c:1.190 --- php4/sapi/cgi/cgi_main.c:1.189 Tue Nov 12 11:41:14 2002 +++ php4/sapi/cgi/cgi_main.c Tue Nov 12 15:56:46 2002 @@ -406,6 +406,7 @@ #endif " -C Do not chdir to the script's directory\n" " -c <path>|<file> Look for php.ini file in this directory\n" + " -n No php.ini file will be used\n" " -d foo[=bar] Define INI entry foo with value 'bar'\n" " -e Generate extended information for debugger/profiler\n" " -f <file> Parse <file>. Implies `-q'\n" @@ -617,6 +618,9 @@ case 'c': cgi_sapi_module.php_ini_path_override = strdup(ap_php_optarg); break; + case 'n': + cgi_sapi_module.php_ini_ignore = 1; + break; } } @@ -884,6 +888,17 @@ free(SG(request_info).argv0); SG(request_info).argv0 = NULL; } + + if (cgi_sapi_module.php_ini_path_override && +cgi_sapi_module.php_ini_ignore) { + no_headers = 1; + php_output_startup(); + php_output_activate(TSRMLS_C); + SG(headers_sent) = 1; + php_printf("You cannot use both -n and -c switch. Use +-h for help.\n"); + php_end_ob_buffers(1 TSRMLS_CC); + exit(1); + } + while ((c = ap_php_getopt(argc, argv, OPTSTRING)) != -1) { switch (c) { @@ -960,7 +975,7 @@ break; #if 0 /* not yet operational, see also below ... */ - case 'n': /* generate indented source mode*/ + case '': /* generate indented source mode*/ behavior=PHP_MODE_INDENT; break; #endif Index: php4/sapi/cli/php_cli.c diff -u php4/sapi/cli/php_cli.c:1.49 php4/sapi/cli/php_cli.c:1.50 --- php4/sapi/cli/php_cli.c:1.49 Tue Nov 5 17:04:12 2002 +++ php4/sapi/cli/php_cli.c Tue Nov 12 15:56:46 2002 @@ -264,6 +264,7 @@ " %s [options] [-- args...]\n" " -a Run interactively\n" " -c <path>|<file> Look for php.ini file in this directory\n" + " -n No php.ini file will be used\n" " -d foo[=bar] Define INI entry foo with value 'bar'\n" " -e Generate extended information for debugger/profiler\n" " -f <file> Parse <file>.\n" @@ -423,8 +424,10 @@ case 'c': cli_sapi_module.php_ini_path_override = strdup(ap_php_optarg); break; + case 'n': + cli_sapi_module.php_ini_ignore = 1; + break; } - } ap_php_optind = orig_optind; ap_php_optarg = orig_optarg; @@ -479,6 +482,13 @@ zend_uv.html_errors = 0; /* tell the engine we're in non-html mode */ + if (cli_sapi_module.php_ini_path_override && +cli_sapi_module.php_ini_ignore) { + SG(headers_sent) = 1; + SG(request_info).no_headers = 1; + PUTS("You cannot use both -n and -c switch. Use -h for +help.\n"); + exit(1); + } + while ((c = ap_php_getopt(argc, argv, OPTSTRING)) != -1) { switch (c) { @@ -561,7 +571,7 @@ break; #if 0 /* not yet operational, see also below ... */ - case 'n': /* generate indented source mode*/ + case '': /* generate indented source mode*/ if (behavior == PHP_MODE_CLI_DIRECT) { param_error = "Source indenting only works for files.\n"; break; Index: php4/main/php_ini.c diff -u php4/main/php_ini.c:1.105 php4/main/php_ini.c:1.106 --- php4/main/php_ini.c:1.105 Thu Oct 24 09:14:45 2002 +++ php4/main/php_ini.c Tue Nov 12 15:56:47 2002 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_ini.c,v 1.105 2002/10/24 13:14:45 sas Exp $ */ +/* $Id: php_ini.c,v 1.106 2002/11/12 20:56:47 helly Exp $ */ /* Check CWD for php.ini */ #define INI_CHECK_CWD @@ -340,32 +340,34 @@ fh.handle.fp = NULL; /* Check if php_ini_path_override is a file */ - if (sapi_module.php_ini_path_override && sapi_module.php_ini_path_override[0]) { - struct stat statbuf; - - if (!VCWD_STAT(sapi_module.php_ini_path_override, &statbuf)) { - if (!((statbuf.st_mode & S_IFMT) == S_IFDIR)) { - fh.handle.fp = VCWD_FOPEN(sapi_module.php_ini_path_override, "r"); - fh.filename = sapi_module.php_ini_path_override; + if (!sapi_module.php_ini_ignore) { + if (sapi_module.php_ini_path_override && +sapi_module.php_ini_path_override[0]) { + struct stat statbuf; + + if (!VCWD_STAT(sapi_module.php_ini_path_override, &statbuf)) { + if (!((statbuf.st_mode & S_IFMT) == S_IFDIR)) { + fh.handle.fp = +VCWD_FOPEN(sapi_module.php_ini_path_override, "r"); + fh.filename = +sapi_module.php_ini_path_override; + } } } - } - /* Search php-%sapi-module-name%.ini file in search path */ - if (!fh.handle.fp) { - const char *fmt = "php-%s.ini"; - char *ini_fname=emalloc(strlen(fmt)+strlen(sapi_module.name)); - sprintf(ini_fname, fmt, sapi_module.name); - fh.handle.fp = php_fopen_with_path(ini_fname, "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); - efree(ini_fname); - if (fh.handle.fp) { - fh.filename = php_ini_opened_path; + /* Search php-%sapi-module-name%.ini file in search path */ + if (!fh.handle.fp) { + const char *fmt = "php-%s.ini"; + char *ini_fname=emalloc(strlen(fmt)+strlen(sapi_module.name)); + sprintf(ini_fname, fmt, sapi_module.name); + fh.handle.fp = php_fopen_with_path(ini_fname, "r", +php_ini_search_path, &php_ini_opened_path TSRMLS_CC); + efree(ini_fname); + if (fh.handle.fp) { + fh.filename = php_ini_opened_path; + } } - } - /* Search php.ini file in search path */ - if (!fh.handle.fp) { - fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); - if (fh.handle.fp) { - fh.filename = php_ini_opened_path; + /* Search php.ini file in search path */ + if (!fh.handle.fp) { + fh.handle.fp = php_fopen_with_path("php.ini", "r", +php_ini_search_path, &php_ini_opened_path TSRMLS_CC); + if (fh.handle.fp) { + fh.filename = php_ini_opened_path; + } } } if (free_ini_search_path) { @@ -390,7 +392,7 @@ efree(php_ini_opened_path); php_ini_opened_path = zend_strndup(Z_STRVAL(tmp), Z_STRLEN(tmp)); } - } + } /* If the config_file_scan_dir is set at compile-time, go and scan this directory and * parse any .ini files found in this directory. */ Index: php4/main/SAPI.h diff -u php4/main/SAPI.h:1.86 php4/main/SAPI.h:1.87 --- php4/main/SAPI.h:1.86 Tue Nov 12 13:29:11 2002 +++ php4/main/SAPI.h Tue Nov 12 15:56:47 2002 @@ -218,6 +218,8 @@ void (*default_post_reader)(TSRMLS_D); void (*treat_data)(int arg, char *str, zval *destArray TSRMLS_DC); char *executable_location; + + int php_ini_ignore; }; @@ -251,7 +253,7 @@ SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader); SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data); -#define STANDARD_SAPI_MODULE_PROPERTIES NULL, NULL +#define STANDARD_SAPI_MODULE_PROPERTIES NULL, NULL, 0 #endif /* SAPI_H */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php