The patch I sent a couple of hours ago was not enough. In fact
delimcpy() was used wrongly when splitting PATH on dosish systems: '\\'
is not quoting ';' in PATH.
Fortunately, delimcpy() is used in very few places in the source, and
never with ';' as delimiter - outside of PATH context. So we just fix
delimcpy() when the delimiter is ';'.
Enjoy,
p5p-msgid:
199707181120.HAA03593@monk.mps.ohio-state.edu
private-msgid:
199707191651.MAA04897@monk.mps.ohio-state.edu
#endif /* LEAKTEST */
-/* copy a string up to some (non-backslashed) delimiter, if any */
+/* copy a string up to some (non-backslashed) delimiter, if any;
+ If the delimiter is ';', then do not consider backslashes -
+ used only for PATH on DOSISH systems. */
char *
delimcpy(to, toend, from, fromend, delim, retlen)
{
register I32 tolen;
for (tolen = 0; from < fromend; from++, tolen++) {
- if (*from == '\\') {
+ if (*from == '\\' && delim != ';') {
if (from[1] == delim)
from++;
else {