Dean, Thanks very much, that indeed worked. -- Peter
On Wed, Nov 3, 2010 at 9:16 PM, Dean Herington <heringtonla...@mindspring.com> wrote: > At 8:45 PM -0700 11/3/10, Peter Schmitz wrote: >> >> I have a program (test.hs): >> >>> module Main (main) where >>> import System.Exit >>> main :: IO ExitCode >>> main = do >>> return (ExitFailure 1) >> >> >> In another program, I invoke it via 'system': >> >>> exitCode <- system ".\\test.exe" >>> case (exitCode) of >>> ExitFailure failCnt -> do >>> putStrLn $ "-- Fail count is: " ++ show failCnt >>> exitFailure >>> ExitSuccess -> do >>> putStrLn $ "-- OK." >>> exitSuccess >> >> >> but it always gets ExitSuccess (not ExitFailure failCnt as I expected). >> (I am running under Windows.) >> >> My other use of system (such as with ghc commands) works okay, >> sometimes getting success, sometimes failure, as expected. >> >> Any suggestions much appreciated. >> Thanks, >> -- Peter > > The value returned by `main` is always discarded. You need to use > `exitWith`: > > main = exitWith (ExitFailure 1) > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe