If you do: - unpack cli.tar.gz in /sapi - apply main.diff.txt patch in /main - ./configure --with-cli
That's it. This is cut-down version of cgi sapi with most of cgi specific stuff removed. Some bugs (like #12219) fixed (therefore the need for patch of /main). Edin P.S. If the list kills the attachments you can find them at: http://www.edin.dk/php/
cli.tar.gz
Description: GNU Zip compressed data
? main.diff.txt Index: SAPI.h =================================================================== RCS file: /repository/php4/main/SAPI.h,v retrieving revision 1.78 diff -u -3 -p -r1.78 SAPI.h --- SAPI.h 11 Dec 2001 15:31:01 -0000 1.78 +++ SAPI.h 6 Jan 2002 04:20:33 -0000 @@ -97,6 +97,10 @@ typedef struct { /* this is necessary for Safe Mode */ char *current_user; int current_user_length; + + /* this is necessary for CLI module */ + int argc; + char **argv; } sapi_request_info; Index: main.c =================================================================== RCS file: /repository/php4/main/main.c,v retrieving revision 1.416 diff -u -3 -p -r1.416 main.c --- main.c 16 Dec 2001 22:45:57 -0000 1.416 +++ main.c 6 Jan 2002 04:20:33 -0000 @@ -861,6 +861,8 @@ int php_module_startup(sapi_module_struc 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 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 /* 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);
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]