
On Wed, May 07, 2008 at 04:42:45PM +0200, Harri Kiiskinen wrote:
Prelude System.Process System.IO> (inp,outp,err,ph) <- runInteractiveProcess "kpsewhich" ["testfile.txt"] Nothing Nothing ... Prelude System.Process System.IO> hGetLine outp
which gives me:
"./testfile.txt\r"
as opposed to "./testfile.txt" which I get on my Linux box.
Is the "\r" supposed to be at the end? I thought it is part of the line separator in Windows, and as such, should not be part of the line retrieved? Same thing happens when compiled with ghc.
This is the correct behavior (although it's debatable whether kpsewhich should be outputting in text mode). In order to get windows-style line handling, a file handle needs to be opened in text mode, which is certainly not the correct behavior for runInteractiveProcess, which has no knowledge about the particular behavior of the program it's running. "\r\n" as newline should die a rapid death... windows is hard enough without maintaining this sort of stupidity. -- David Roundy Department of Physics Oregon State University