Add -d switch
authorZeev Suraski <zeev@php.net>
Sat, 28 Aug 1999 23:06:07 +0000 (23:06 +0000)
committerZeev Suraski <zeev@php.net>
Sat, 28 Aug 1999 23:06:07 +0000 (23:06 +0000)
ChangeLog
cgi_main.c

index 8d9746bc5cbe8afbcde1a6ab4ff6f7ae1c1cc487..4b33c61fb79523f2f795834a3765e135fcf2d7c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@ PHP 4.0 CHANGE LOG                                                    ChangeLog
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 
 ?? ?? 1999, Version 4.0 Beta 3
+- Added -d switch to the CGI binary that allows overriding php.ini values
+  from the command line (Zeev)
 - Fixed a crash that would occur if wddx_deserialize did not receive
   a valid packet (Andrey)
 - Fixed a bugglet when redefining a class at run-time (Andi, Zend library)
@@ -11,7 +13,7 @@ PHP 4.0 CHANGE LOG                                                    ChangeLog
 - Fixed bug in ISAPI header sending function (Charles)
 - Fixed memory leak when using undefined values (Andi & Zeev, Zend library)
 - Added output_buffering directive to php.ini, to enable output buffering
-  for all PHP scripts (default is off).
+  for all PHP scripts - default is off (Zeev).
 - Fixed some more class inheritance issues (Zeev, Zend library)
 - Fixed Apache build wrt to shared modules on FreeBSD/Linux (Sascha)
 - Added session.extern_referer_chk which checks whether session ids were
index 96caa39f16f698da7194b527f92bf31c1bead8fb..57735f396f41832597a4169d33983c7a9bd4c033 100644 (file)
@@ -162,17 +162,18 @@ static void php_cgi_usage(char *argv0)
                                " [-s]"
                                " [-v] [-i] [-f <file>] | "
                                "{<file> [args...]}\n"
-                               "  -q       Quiet-mode.  Suppress HTTP Header output.\n"
-                               "  -s       Display colour syntax highlighted source.\n"
-                               "  -f<file> Parse <file>.  Implies `-q'\n"
-                               "  -v       Version number\n"
-                               "  -c<path> Look for php.ini file in this directory\n"
+                               "  -q             Quiet-mode.  Suppress HTTP Header output.\n"
+                               "  -s             Display colour syntax highlighted source.\n"
+                               "  -f<file>       Parse <file>.  Implies `-q'\n"
+                               "  -v             Version number\n"
+                               "  -c<path>       Look for php.ini file in this directory\n"
 #if SUPPORT_INTERACTIVE
-                               "  -a           Run interactively\n"
+                               "  -a             Run interactively\n"
 #endif
-                               "  -e           Generate extended information for debugger/profiler\n"
-                               "  -i       PHP information\n"
-                               "  -h       This help\n", prog);
+                               "  -d foo[=bar]   Define INI entry foo with value 'bar'\n"
+                               "  -e             Generate extended information for debugger/profiler\n"
+                               "  -i             PHP information\n"
+                               "  -h             This help\n", prog);
 }
 
 
@@ -193,6 +194,22 @@ static void init_request_info(SLS_D)
 }
 
 
+void define_command_line_ini_entry(char *arg)
+{
+       char *name, *value;
+
+       name = arg;
+       value = strchr(arg, '=');
+       if (value) {
+               *value = 0;
+               value++;
+       } else {
+               value = "1";
+       }
+       php_alter_ini_entry(name, strlen(name), value, strlen(value), PHP_INI_SYSTEM);
+}
+
+
 int main(int argc, char *argv[])
 {
        int cgi = 0, c, i, len;
@@ -288,7 +305,7 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
 
        if (!cgi) {                                     /* never execute the arguments if you are a CGI */
                request_info.php_argv0 = NULL;
-               while ((c = getopt(argc, argv, "c:qvisnaeh?vf:")) != -1) {
+               while ((c = getopt(argc, argv, "cd:qvisnaeh?vf:")) != -1) {
                        switch (c) {
                                case 'f':
                                        if (!cgi_started){ 
@@ -361,6 +378,9 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
                                        php_cgi_usage(argv[0]);
                                        exit(1);
                                        break;
+                               case 'd':
+                                       define_command_line_ini_entry(optarg);
+                                       break;
                                default:
                                        break;
                        }