zeev            Sun Jan 21 16:06:52 2001 EDT

  Modified files:              
    /php4/sapi/apache   mod_php4.c 
  Log:
  Don't overwrite PATH_TRANSLATED if it exists
  
  
Index: php4/sapi/apache/mod_php4.c
diff -u php4/sapi/apache/mod_php4.c:1.84 php4/sapi/apache/mod_php4.c:1.85
--- php4/sapi/apache/mod_php4.c:1.84    Wed Jan  3 14:45:11 2001
+++ php4/sapi/apache/mod_php4.c Sun Jan 21 16:06:52 2001
@@ -17,7 +17,7 @@
    | PHP 4.0 patches by Zeev Suraski <[EMAIL PROTECTED]>                      |
    +----------------------------------------------------------------------+
  */
-/* $Id: mod_php4.c,v 1.84 2001/01/03 22:45:11 zeev Exp $ */
+/* $Id: mod_php4.c,v 1.85 2001/01/22 00:06:52 zeev Exp $ */
 
 #define NO_REGEX_EXTRA_H
 #ifdef WIN32
@@ -225,25 +225,35 @@
        array_header *arr = table_elts(((request_rec *) 
SG(server_context))->subprocess_env);
        table_entry *elts = (table_entry *) arr->elts;
        char *script_filename=NULL;
+       zval **path_translated;
+       HashTable *symbol_table;
 
        for (i = 0; i < arr->nelts; i++) {
                char *val;
 
                if (elts[i].val) {
                        val = elts[i].val;
-                       if (!strcmp(elts[i].key, "SCRIPT_FILENAME")) {
-                               script_filename = val;
-                       }
                } else {
                        val = empty_string;
                }
                php_register_variable(elts[i].key, val, track_vars_array  ELS_CC 
PLS_CC);
        }
 
-       /* insert special variables */
-       if (script_filename) {
-               php_register_variable("PATH_TRANSLATED", script_filename, 
track_vars_array ELS_CC PLS_CC);
+       /* If PATH_TRANSLATED doesn't exist, copy it from SCRIPT_FILENAME */
+       if (track_vars_array) {
+               symbol_table = track_vars_array->value.ht;
+       } else if (PG(register_globals)) {
+               /* should never happen nowadays */
+               symbol_table = EG(active_symbol_table);
+       } else {
+               symbol_table = NULL;
+       }
+       if (symbol_table
+               && !zend_hash_exists(symbol_table, "PATH_TRANSLATED", 
+sizeof("PATH_TRANSLATED"))
+               && zend_hash_find(symbol_table, "SCRIPT_FILENAME", 
+sizeof("SCRIPT_FILENAME"), (void **) &path_translated)) {
+               php_register_variable("PATH_TRANSLATED", Z_STRVAL_PP(path_translated), 
+track_vars_array ELS_CC PLS_CC);
        }
+
        php_register_variable("PHP_SELF", ((request_rec *) SG(server_context))->uri, 
track_vars_array ELS_CC PLS_CC);
 }
 



-- 
PHP CVS 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]

Reply via email to