diff options
author | Edin Kadribasic <edink@php.net> | 2002-01-06 13:58:05 +0000 |
---|---|---|
committer | Edin Kadribasic <edink@php.net> | 2002-01-06 13:58:05 +0000 |
commit | 1788410a56c7ee10fdaabb7d438c7938158c8d4c (patch) | |
tree | 761a4f6be2c1f7231600514fcb0fe979c6c1ecfb /main/main.c | |
parent | 6e1878b0fcfc55ea91b0559e27e35c37e53e9a64 (diff) | |
download | php-git-1788410a56c7ee10fdaabb7d438c7938158c8d4c.tar.gz |
Added argc and argv in request_info needed for the new cli sapi.
Modified registering $argc and $argv to support cli sapi.
Diffstat (limited to 'main/main.c')
-rw-r--r-- | main/main.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/main/main.c b/main/main.c index a6b7bb107e..a4a44ac187 100644 --- a/main/main.c +++ b/main/main.c @@ -861,6 +861,8 @@ int php_module_startup(sapi_module_struct *sf) PG(header_is_being_sent) = 0; SG(request_info).headers_only = 0; SG(request_info).argv0 = NULL; + SG(request_info).argc=0; + SG(request_info).argv=(char **)NULL; PG(connection_status) = PHP_CONNECTION_NORMAL; PG(during_request_startup) = 0; @@ -1195,7 +1197,21 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC) INIT_PZVAL(arr); /* Prepare argv */ - if (s && *s) { + if (SG(request_info).argc) { /* are we in cli sapi? */ + int i; + for (i=0; i<SG(request_info).argc; i++) { + ALLOC_ZVAL(tmp); + Z_TYPE_P(tmp) = IS_STRING; + Z_STRLEN_P(tmp) = strlen(SG(request_info).argv[i]); + Z_STRVAL_P(tmp) = estrndup(SG(request_info).argv[i], Z_STRLEN_P(tmp)); + INIT_PZVAL(tmp); + if (zend_hash_next_index_insert(Z_ARRVAL_P(arr), &tmp, sizeof(pval *), NULL)==FAILURE) { + if (Z_TYPE_P(tmp) == IS_STRING) { + efree(Z_STRVAL_P(tmp)); + } + } + } + } else if (s && *s) { ss = s; while (ss) { space = strchr(ss, '+'); @@ -1225,7 +1241,11 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC) /* prepare argc */ ALLOC_ZVAL(argc); - Z_LVAL_P(argc) = count; + if (SG(request_info).argc) { + Z_LVAL_P(argc) = SG(request_info).argc; + } else { + Z_LVAL_P(argc) = count; + } Z_TYPE_P(argc) = IS_LONG; INIT_PZVAL(argc); |