mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
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.
This commit is contained in:
parent
dc080a5db6
commit
b3920d5012
1 changed files with 19 additions and 10 deletions
|
@ -369,9 +369,15 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
|
|||
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 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
|
|||
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 @@ static inline void php_register_server_variables(TSRMLS_D)
|
|||
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);
|
||||
|
@ -646,6 +650,11 @@ int php_hash_environment(TSRMLS_D)
|
|||
}
|
||||
}
|
||||
|
||||
/* 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++) {
|
||||
if (jit_initialization && auto_global_records[i].jit_initialization) {
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue