dmitry Mon Dec 3 09:38:12 2007 UTC
Modified files: (Branch: PHP_5_3)
/php-src/sapi/cgi cgi_main.c
Log:
The -f option is fixed to work in the same way as in CLI sapi
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.267.2.15.2.50.2.9&r2=1.267.2.15.2.50.2.10&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.50.2.9
php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.50.2.10
--- php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.50.2.9 Fri Nov 9 16:27:43 2007
+++ php-src/sapi/cgi/cgi_main.c Mon Dec 3 09:38:12 2007
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cgi_main.c,v 1.267.2.15.2.50.2.9 2007/11/09 16:27:43 jani Exp $ */
+/* $Id: cgi_main.c,v 1.267.2.15.2.50.2.10 2007/12/03 09:38:12 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -1690,12 +1690,12 @@
}
script_file =
estrdup(php_optarg);
no_headers = 1;
- /* arguments after the
file are considered script args */
- SG(request_info).argc =
argc - (php_optind - 1);
- SG(request_info).argv =
&argv[php_optind - 1];
break;
case 'i': /* php info & quit */
+ if (script_file) {
+
efree(script_file);
+ }
if
(php_request_startup(TSRMLS_C) == FAILURE) {
SG(server_context) = NULL;
php_module_shutdown(TSRMLS_C);
@@ -1716,6 +1716,9 @@
break;
case 'm': /* list compiled in
modules */
+ if (script_file) {
+
efree(script_file);
+ }
php_output_startup();
php_output_activate(TSRMLS_C);
SG(headers_sent) = 1;
@@ -1739,6 +1742,9 @@
break;
case 'v': /* show php version &
quit */
+ if (script_file) {
+
efree(script_file);
+ }
no_headers = 1;
if
(php_request_startup(TSRMLS_C) == FAILURE) {
SG(server_context) = NULL;
@@ -1775,6 +1781,18 @@
/* override path_translated if -f on
command line */
STR_FREE(SG(request_info).path_translated);
SG(request_info).path_translated =
script_file;
+ /* before registering argv to module
exchange the *new* argv[0] */
+ /* we can achieve this without
allocating more memory */
+ SG(request_info).argc = argc -
(php_optind - 1);
+ SG(request_info).argv =
&argv[php_optind - 1];
+ SG(request_info).argv[0] = script_file;
+ } else if (argc > php_optind) {
+ /* file is on command line, but not in
-f opt */
+
STR_FREE(SG(request_info).path_translated);
+ SG(request_info).path_translated =
estrdup(argv[php_optind++]);
+ /* arguments after the file are
considered script args */
+ SG(request_info).argc = argc -
php_optind;
+ SG(request_info).argv =
&argv[php_optind];
}
if (no_headers) {
@@ -1782,14 +1800,6 @@
SG(request_info).no_headers = 1;
}
- if (!SG(request_info).path_translated && argc >
php_optind) {
- /* arguments after the file are
considered script args */
- SG(request_info).argc = argc -
php_optind;
- SG(request_info).argv =
&argv[php_optind];
- /* file is on command line, but not in
-f opt */
- SG(request_info).path_translated =
estrdup(argv[php_optind++]);
- }
-
/* all remaining arguments are part of the
query string
this section of code concatenates all
remaining arguments
into a single string, seperating args with a
&
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php