iliaa           Fri Sep 22 17:42:08 2006 UTC

  Modified files:              
    /php-src/sapi/cli   php_cli.c 
    /php-src/sapi/cgi   cgi_main.c 
  Log:
  MFB: Restore support for unquoted -d options
  
  
http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/php_cli.c?r1=1.162&r2=1.163&diff_format=u
Index: php-src/sapi/cli/php_cli.c
diff -u php-src/sapi/cli/php_cli.c:1.162 php-src/sapi/cli/php_cli.c:1.163
--- php-src/sapi/cli/php_cli.c:1.162    Fri Sep 15 08:18:10 2006
+++ php-src/sapi/cli/php_cli.c  Fri Sep 22 17:42:08 2006
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_cli.c,v 1.162 2006/09/15 08:18:10 tony2001 Exp $ */
+/* $Id: php_cli.c,v 1.163 2006/09/22 17:42:08 iliaa Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -655,12 +655,26 @@
                        case 'd': {
                                /* define ini entries on command line */
                                int len = strlen(php_optarg);
+                               char *val;
 
-                               if (strchr(php_optarg, '=')) {
-                                       cli_sapi_module.ini_entries = 
realloc(cli_sapi_module.ini_entries, ini_entries_len + len + sizeof("\n\0"));
-                                       memcpy(cli_sapi_module.ini_entries + 
ini_entries_len, php_optarg, len);
-                                       memcpy(cli_sapi_module.ini_entries + 
ini_entries_len + len, "\n\0", sizeof("\n\0"));
-                                       ini_entries_len += len + sizeof("\n\0") 
- 2;
+                               if ((val = strchr(php_optarg, '='))) {
+                                       val++;
+                                       if (!isalnum(*val) && *val != '"' && 
*val != '\'' && *val != '\0') {
+                                               cli_sapi_module.ini_entries = 
realloc(cli_sapi_module.ini_entries, ini_entries_len + len + 
sizeof("\"\"\n\0"));
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, php_optarg, (val - 
php_optarg));
+                                               ini_entries_len += (val - 
php_optarg);
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, "\"", 1);
+                                               ini_entries_len++;
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, val, len - (val - 
php_optarg));
+                                               ini_entries_len += len - (val - 
php_optarg);
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, "\"\n\0", 
sizeof("\"\n\0"));
+                                               ini_entries_len += 
sizeof("\n\0\"") - 2;
+                                       } else {
+                                               cli_sapi_module.ini_entries = 
realloc(cli_sapi_module.ini_entries, ini_entries_len + len + sizeof("\n\0"));
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, php_optarg, len);
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len + len, "\n\0", 
sizeof("\n\0"));
+                                               ini_entries_len += len + 
sizeof("\n\0") - 2;
+                                       }
                                } else {
                                        cli_sapi_module.ini_entries = 
realloc(cli_sapi_module.ini_entries, ini_entries_len + len + sizeof("=1\n\0"));
                                        memcpy(cli_sapi_module.ini_entries + 
ini_entries_len, php_optarg, len);
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.298&r2=1.299&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.298 php-src/sapi/cgi/cgi_main.c:1.299
--- php-src/sapi/cgi/cgi_main.c:1.298   Thu Aug 31 13:12:18 2006
+++ php-src/sapi/cgi/cgi_main.c Fri Sep 22 17:42:08 2006
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cgi_main.c,v 1.298 2006/08/31 13:12:18 dmitry Exp $ */
+/* $Id: cgi_main.c,v 1.299 2006/09/22 17:42:08 iliaa Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -1028,12 +1028,26 @@
                        case 'd': { 
                                /* define ini entries on command line */
                                int len = strlen(php_optarg);
+                               char *val;
 
-                               if (strchr(php_optarg, '=')) {
-                                       cgi_sapi_module.ini_entries = 
realloc(cgi_sapi_module.ini_entries, ini_entries_len + len + sizeof("\n\0"));
-                                       memcpy(cgi_sapi_module.ini_entries + 
ini_entries_len, php_optarg, len);
-                                       memcpy(cgi_sapi_module.ini_entries + 
ini_entries_len + len, "\n\0", sizeof("\n\0"));
-                                       ini_entries_len += len + sizeof("\n\0") 
- 2;
+                               if ((val = strchr(php_optarg, '='))) {
+                                       val++;
+                                       if (!isalnum(*val) && *val != '"' && 
*val != '\'' && *val != '\0') {
+                                               cli_sapi_module.ini_entries = 
realloc(cli_sapi_module.ini_entries, ini_entries_len + len + 
sizeof("\"\"\n\0"));
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, php_optarg, (val - 
php_optarg));
+                                               ini_entries_len += (val - 
php_optarg);
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, "\"", 1);
+                                               ini_entries_len++;
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, val, len - (val - 
php_optarg));
+                                               ini_entries_len += len - (val - 
php_optarg);
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, "\"\n\0", 
sizeof("\"\n\0"));
+                                               ini_entries_len += 
sizeof("\n\0\"") - 2;
+                                       } else {
+                                               cli_sapi_module.ini_entries = 
realloc(cli_sapi_module.ini_entries, ini_entries_len + len + sizeof("\n\0"));
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len, php_optarg, len);
+                                               
memcpy(cli_sapi_module.ini_entries + ini_entries_len + len, "\n\0", 
sizeof("\n\0"));
+                                               ini_entries_len += len + 
sizeof("\n\0") - 2;
+                                       }
                                } else {
                                        cgi_sapi_module.ini_entries = 
realloc(cgi_sapi_module.ini_entries, ini_entries_len + len + sizeof("=1\n\0"));
                                        memcpy(cgi_sapi_module.ini_entries + 
ini_entries_len, php_optarg, len);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to