From: Moriyoshi Koizumi Date: Tue, 20 May 2003 07:34:08 +0000 (+0000) Subject: Revisit the braindead patch only for this branch X-Git-Tag: BEFORE_FD_REVERT~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9a70574485c1cbefc7cb5f07e777dd21139ff7c;p=php Revisit the braindead patch only for this branch # this behaviour is fixed in the php5 branch --- diff --git a/sapi/apache2filter/sapi_apache2.c b/sapi/apache2filter/sapi_apache2.c index a84052a092..a0a5a4efbc 100644 --- a/sapi/apache2filter/sapi_apache2.c +++ b/sapi/apache2filter/sapi_apache2.c @@ -205,13 +205,20 @@ php_apache_sapi_register_variables(zval *track_vars_array TSRMLS_DC) php_struct *ctx = SG(server_context); const apr_array_header_t *arr = apr_table_elts(ctx->r->subprocess_env); char *key, *val; + zval **path_translated_zv; APR_ARRAY_FOREACH_OPEN(arr, key, val) if (!val) val = empty_string; php_register_variable(key, val, track_vars_array TSRMLS_CC); APR_ARRAY_FOREACH_CLOSE() - + php_register_variable("PHP_SELF", ctx->r->uri, track_vars_array TSRMLS_CC); + + /* If PATH_TRANSLATED doesn't exist, copy it from SCRIPT_FILENAME */ + if (!zend_hash_exists(Z_ARRVAL_P(track_vars_array), "PATH_TRANSLATED", sizeof("PATH_TRANSLATED")) + && zend_hash_find(Z_ARRVAL_P(track_vars_array), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME"), (void **) &path_translated_zv) == SUCCESS) { + php_register_variable("PATH_TRANSLATED", Z_STRVAL_PP(path_translated_zv), track_vars_array TSRMLS_CC); + } } static void diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c index b6492db8d5..696c121a55 100644 --- a/sapi/apache2handler/sapi_apache2.c +++ b/sapi/apache2handler/sapi_apache2.c @@ -225,13 +225,20 @@ php_apache_sapi_register_variables(zval *track_vars_array TSRMLS_DC) php_struct *ctx = SG(server_context); const apr_array_header_t *arr = apr_table_elts(ctx->r->subprocess_env); char *key, *val; - + zval **path_translated_zv; + APR_ARRAY_FOREACH_OPEN(arr, key, val) if (!val) val = empty_string; php_register_variable(key, val, track_vars_array TSRMLS_CC); APR_ARRAY_FOREACH_CLOSE() - + php_register_variable("PHP_SELF", ctx->r->uri, track_vars_array TSRMLS_CC); + + /* If PATH_TRANSLATED doesn't exist, copy it from SCRIPT_FILENAME */ + if (!zend_hash_exists(Z_ARRVAL_P(track_vars_array), "PATH_TRANSLATED", sizeof("PATH_TRANSLATED")) + && zend_hash_find(Z_ARRVAL_P(track_vars_array), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME"), (void **) &path_translated_zv) == SUCCESS) { + php_register_variable("PATH_TRANSLATED", Z_STRVAL_PP(path_translated_zv), track_vars_array TSRMLS_CC); + } } static void