- putenv(sprintf2("PATH_INFO=%s", rest));
- putenv(sprintf2("SCRIPT_NAME=%s", url));
+ unqr = unquoteurl(rest);
+ putenv(sprintf2("PATH_INFO=%s", unqr?unqr:rest));
+ name = url;
+ /* XXX: This is an ugly hack (I think), but though I can think
+ * of several alternatives, none seem to be better. */
+ if(*rest && (strlen(url) >= strlen(rest)) &&
+ !strcmp(rest, url + strlen(url) - strlen(rest))) {
+ name = sprintf2("%.*s", (int)(strlen(url) - strlen(rest)), url);
+ }
+ putenv(sprintf2("SCRIPT_NAME=%s", name));