(what I think is) broken logic.
# This is as discussed on the mailing list previously. This change
# does fix the problem, however, the extra code was in there for a
# reason (I'm guessing :), i'm ready to revert this patch in a jiffy
# if someone has a good reason why that (just removed) extra logic
# should be in there.
php_import_environment_variables(track_vars_array ELS_CC PLS_CC);
/* Build the special-case PHP_SELF variable for the CGI version */
-#if FORCE_CGI_REDIRECT
php_register_variable("PHP_SELF", (SG(request_info).request_uri ? SG(request_info).request_uri:""), track_vars_array ELS_CC PLS_CC);
-#else
- {
- char *sn;
- char *val;
- int l=0;
-
- sn = getenv("SCRIPT_NAME");
- pi = SG(request_info).request_uri;
- if (sn)
- l += strlen(sn);
- if (pi)
- l += strlen(pi);
- if (pi && sn && !strcmp(pi, sn)) {
- l -= strlen(pi);
- pi = NULL;
- }
- val = emalloc(l + 1);
- sprintf(val, "%s%s", (sn ? sn : ""), (pi ? pi : "")); /* SAFE */
- php_register_variable("PHP_SELF", val, track_vars_array ELS_CC PLS_CC);
- efree(val);
- }
-#endif
}