RE: Win32 process spawning, POpen and Hugs, revisited

My apologies to those who couldn't read the attachment. I've put it here; http://www.haskell.org/~simonmar/process/Process.hs Haddock docs here: http://www.haskell.org/~simonmar/process/System.Process.html
The abstraction could use an option to control whether exiting or killing the parent process also terminates the child.
Good point.
I'm not sure on what Windows foundation you are thinking of implementing this, but it's not easy to handle the command and arguments on the Win32 API. The arguments are handled by the API as a raw string, so the caller must quote the arguments according to awkard (possibly undocumented) rules. I've worked with this both in the Win32 API and using Perl. Perl didn't have it right, so in one case I was unable to invoke a certain command using the full pathname, because it contained spaces.
We've already solved this problem: see System.Cmd.rawSystem in GHC 6.2. On Windows this translates the command line in such a way that the program will see exactly the arguments that you pass to rawSystem. Well, there's a small caveat: the target program has to be using Microsoft's standard C runtime semantics for parsing the command line (which pretty much everything does, I believe). Cheers, Simon
participants (1)
-
Simon Marlow