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