andrei Wed Oct 1 19:12:01 2003 EDT
Modified files:
/php-src/main php_variables.c
Log:
Made the $argc and $argv always available as globals in CLI, and not as
$_SERVER vars which depended on variables_order anyway. No more
silliness.
Index: php-src/main/php_variables.c
diff -u php-src/main/php_variables.c:1.68 php-src/main/php_variables.c:1.69
--- php-src/main/php_variables.c:1.68 Thu Jul 31 18:56:57 2003
+++ php-src/main/php_variables.c Wed Oct 1 19:11:59 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_variables.c,v 1.68 2003/07/31 22:56:57 iliaa Exp $ */
+/* $Id: php_variables.c,v 1.69 2003/10/01 23:11:59 andrei Exp $ */
#include <stdio.h>
#include "php.h"
@@ -369,9 +369,15 @@
int count = 0;
char *ss, *space;
+ if (! (PG(register_globals) || SG(request_info).argc ||
+ PG(http_globals)[TRACK_VARS_SERVER]) ) {
+ return;
+ }
+
ALLOC_ZVAL(arr);
array_init(arr);
- INIT_PZVAL(arr);
+ arr->is_ref = 0;
+ arr->refcount = 0;
/* Prepare argv */
if (SG(request_info).argc) { /* are we in cli sapi? */
@@ -424,17 +430,20 @@
Z_LVAL_P(argc) = count;
}
Z_TYPE_P(argc) = IS_LONG;
- INIT_PZVAL(argc);
+ argc->is_ref = 0;
+ argc->refcount = 0;
if (PG(register_globals) || SG(request_info).argc) {
arr->refcount++;
argc->refcount++;
zend_hash_update(&EG(symbol_table), "argv", sizeof("argv"), &arr,
sizeof(zval *), NULL);
zend_hash_add(&EG(symbol_table), "argc", sizeof("argc"), &argc,
sizeof(zval *), NULL);
+ } else if (!SG(request_info).argc) {
+ arr->refcount++;
+ argc->refcount++;
+ zend_hash_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv"),
&arr, sizeof(pval *), NULL);
+ zend_hash_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc"),
&argc, sizeof(pval *), NULL);
}
-
- zend_hash_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv"), &arr,
sizeof(pval *), NULL);
- zend_hash_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc"), &argc,
sizeof(pval *), NULL);
}
/* }}} */
@@ -476,11 +485,6 @@
sapi_module.register_server_variables(array_ptr TSRMLS_CC);
}
- /* argv/argc support */
- if (PG(register_argc_argv)) {
- php_build_argv(SG(request_info).query_string, array_ptr TSRMLS_CC);
- }
-
/* PHP Authentication support */
if (SG(request_info).auth_user) {
php_register_variable("PHP_AUTH_USER", SG(request_info).auth_user,
array_ptr TSRMLS_CC);
@@ -644,6 +648,11 @@
if (PG(register_globals)) {
php_autoglobal_merge(&EG(symbol_table),
Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]) TSRMLS_CC);
}
+ }
+
+ /* argv/argc support */
+ if (PG(register_argc_argv)) {
+ php_build_argv(SG(request_info).query_string,
PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC);
}
for (i=0; i<num_track_vars; i++) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php