continue;
}
if (((*ch == '$') || (*ch == '%')) && (*(ch + 1) == '1')) {
+ /* Todo: Make short name!!! */
prgtaken = 1;
arg = (const char**)apr_array_push(args);
- *arg = cgiprg;
+ if (*ch == '%') {
+ char *repl = apr_pstrdup(p, cgiprg);
+ while ((repl = strchr(repl, '/')))
+ *repl++ = '\\';
+ *arg = repl;
+ }
+ else
+ *arg = cgiprg;
ch += 2;
continue;
}
&& (*(ch + 3) == '\"')) {
prgtaken = 1;
arg = (const char**)apr_array_push(args);
- *arg = cgiprg;
+ if (*(ch + 1) == '%') {
+ char *repl = apr_pstrdup(p, cgiprg);
+ while ((repl = strchr(repl, '/')))
+ *repl++ = '\\';
+ *arg = repl;
+ }
+ else
+ *arg = cgiprg;
ch += 4;
continue;
}