Mail Archives: djgpp-workers/1996/04/21/04:38:15
Some more problems with spawning and command-line treatment:
1) First, if POSIX says that argv[] passed to `execXX' should end
up verbatim in the child's argv[], then this is not so in DJGPP, because
the crt1 functions glob the arguments. I don't think this is wrong, I
just wanted to point out the deviation from POSIX. If people think that
this should be fixed, it's also not too hard; I can do it together with
other enhancements to `system' and `dosexec' that I already did.
2) There seems to be a bug in handling escaped quote characters by
the `parse_bytes' function (on c1args.c). If it sees a quote escaped with
a backslash, it sets the `was_quoted' flag, and that argument isn't
expanded by filename-globbing mechanism. This makes single-quote (')
special in filenames, and effectively prevents globbing on any such files.
For instance, if you have files a'b and a'c, you cannot tell any DJGPP
program to work on "a\'*" and hope that both these files will be used.
Is there anything that I missed here?
3) The function `go32_exec' that tries to spawn DJGPP programs
using !proxy, gives up if it doesn't find `go32.exe' on the PATH, and
runs that program as a usual DOS executable (therefore losing the long
command-lines feature). Won't this preclude calling programs with
embedded go32 with long commands, if go32 is nowhere to be found?
- Raw text -