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

Reply via email to