X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FEnvironment.hs;h=4c62fca6911a5a66e17427a987eeb4b10b189e89;hb=f00fe3e6cb628f3bfac049275660f0365daa3733;hp=19bccf35453b7ae01fbcdf97292685251d03a6e0;hpb=13773706eb9d3eed2d3aba8154aa1d4fdac9fb0b;p=ghc-base.git diff --git a/System/Environment.hs b/System/Environment.hs index 19bccf3..4c62fca 100644 --- a/System/Environment.hs +++ b/System/Environment.hs @@ -128,6 +128,7 @@ foreign import ccall unsafe "getenv" @withArgs args act@ - while executing action @act@, have 'System.getArgs' return @args@ (GHC only). -} +withArgs :: [String] -> IO a -> IO a withArgs xs act = do p <- System.Environment.getProgName withArgv (p:xs) act @@ -136,6 +137,7 @@ withArgs xs act = do @withProgName name act@ - while executing action @act@, have 'System.getProgName' return @name@ (GHC only). -} +withProgName :: String -> IO a -> IO a withProgName nm act = do xs <- System.Environment.getArgs withArgv (nm:xs) act @@ -143,6 +145,7 @@ withProgName nm act = do -- Worker routine which marshals and replaces an argv vector for -- the duration of an action. +withArgv :: [String] -> IO a -> IO a withArgv new_args act = do pName <- System.Environment.getProgName existing_args <- System.Environment.getArgs