summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-03-17 15:04:23 +0000
committerDmitry Stogov <dmitry@php.net>2006-03-17 15:04:23 +0000
commitfb7324bb71048bb320d2c97c4924aadc5ef3aaa0 (patch)
tree58bc56e6daf524f6093cdd1523c70b9770e41718
parentc6b425432a5c649b6fb81dd891ab0c46ed307bc2 (diff)
downloadphp-git-fb7324bb71048bb320d2c97c4924aadc5ef3aaa0.tar.gz
Fixed register_argc_argv
-rw-r--r--main/php_variables.c4
-rw-r--r--tests/basic/011.phpt7
-rwxr-xr-xtests/basic/bug29971.phpt1
3 files changed, 3 insertions, 9 deletions
diff --git a/main/php_variables.c b/main/php_variables.c
index 8e2bb87f30..2bfe566a1a 100644
--- a/main/php_variables.c
+++ b/main/php_variables.c
@@ -639,7 +639,7 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
int count = 0;
char *ss, *space;
- if (!(SG(request_info).argc || track_vars_array)) {
+ if (!(SG(request_info).argc || (s && *s))) {
return;
}
@@ -696,7 +696,7 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
argc->is_ref = 0;
argc->refcount = 0;
- if (SG(request_info).argc) {
+ if (Z_LVAL_P(argc)) {
arr->refcount++;
argc->refcount++;
zend_hash_update(&EG(symbol_table), "argv", sizeof("argv"), &arr, sizeof(zval *), NULL);
diff --git a/tests/basic/011.phpt b/tests/basic/011.phpt
index 34eed7915a..14c0542ec1 100644
--- a/tests/basic/011.phpt
+++ b/tests/basic/011.phpt
@@ -8,16 +8,9 @@ register_argc_argv=1
ab+cd+ef+123+test
--FILE--
<?php
-
-if (!ini_get('register_globals')) {
- $argc = $_SERVER['argc'];
- $argv = $_SERVER['argv'];
-}
-
for ($i=0; $i<$argc; $i++) {
echo "$i: ".$argv[$i]."\n";
}
-
?>
--EXPECT--
0: ab
diff --git a/tests/basic/bug29971.phpt b/tests/basic/bug29971.phpt
index 1d2bc0b1c6..fdbee8fd46 100755
--- a/tests/basic/bug29971.phpt
+++ b/tests/basic/bug29971.phpt
@@ -2,6 +2,7 @@
Bug #29971 (variables_order behaviour)
--INI--
variables_order=GPC
+register_argc_argv=0
--FILE--
<?php
var_dump($_ENV,$_SERVER);