Additional patch for "Can't execute ..."
Ilya Zakharevich [Sun, 15 Jun 1997 23:17:08 +0000 (11:17 +1200)]
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

util.c

diff --git a/util.c b/util.c
index 99eb7e0..fb6c0c0 100644 (file)
--- a/util.c
+++ b/util.c
@@ -279,7 +279,9 @@ xstat()
 
 #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)
@@ -292,7 +294,7 @@ I32 *retlen;
 {
     register I32 tolen;
     for (tolen = 0; from < fromend; from++, tolen++) {
-       if (*from == '\\') {
+       if (*from == '\\' && delim != ';') {
            if (from[1] == delim)
                from++;
            else {