--- 1141pr/src/plugin/coopthreads/coopthreads.c 2002-03-18 21:58:14.000000000 +0000 +++ comhack/src/plugin/coopthreads/coopthreads.c 2003-01-10 15:37:03.000000000 +0000 @@ -1734,6 +1734,20 @@ } else s[1+(unsigned char)s[0]] = 0; s++; + + /* transform: + * dir/p to dir /p + * cd\ to cd \ + * cd.. to cd .. + */ + p = s; + while (isalnum(*p)) p++; + if (*p == '\\' || *p == '/' || (*p == '.' && p[1] == '.')) { + memmove(p+1, p, s [-1] - (p - s) + 1/*NUL*/); + *p = ' '; + s[-1]++; /* update length */ + } + maxarg --; for ( ; *s; s++) { if (!mode) { --- 1141pr/src/plugin/commands/comcom.c 2002-12-21 01:27:13.000000000 +0000 +++ comhack/src/plugin/commands/comcom.c 2003-01-10 15:17:29.000000000 +0000 @@ -1324,6 +1324,7 @@ i = replen - (s - replbuf); memcpy(p, s, i+1); callbuf[0] = p - (callbuf+1) + i; + /* WARNING! callbuf may be modified by com_argparse */ j = com_argparse(callbuf, argv+arg0_new, MAXARGS - (argc-arg0_new) -1); saved_dta = PSP_DTA; SET_CHILD_ARGS(arg0_new); @@ -3276,6 +3277,7 @@ if (!bdta.mode) com_doswrite(2, "\r\n", 2); memcpy(argbuf, &LEN0A, LEN0A+2); /* save contents */ + /* WARNING! argbuf may be modified by com_argparse */ argc = com_argparse(argbuf, argv, MAXARGS -1); bdta.argcsub = bdta.argc = argc; /* save positional variables */ bdta.argvsub = bdta.argv = argv;