From: Simon Marlow Date: Mon, 18 Feb 2008 12:29:08 +0000 (+0000) Subject: getTemporaryDirectory: be more precise when catching exns from getEnv X-Git-Tag: 2008-05-28~1 X-Git-Url: http://git.megacz.com/?p=haskell-directory.git;a=commitdiff_plain;h=29fd272657d1c13500e7cd5f670aadc8ed41c445 getTemporaryDirectory: be more precise when catching exns from getEnv --- diff --git a/System/Directory.hs b/System/Directory.hs index 80a20ee..d705c0d 100644 --- a/System/Directory.hs +++ b/System/Directory.hs @@ -1027,7 +1027,10 @@ getTemporaryDirectory = do r <- c_GetTempPath (fromIntegral long_path_size) pPath peekCString pPath #else - catch (getEnv "TMPDIR") (\ex -> return "/tmp") + getEnv "TMPDIR" + `catch` \ex -> case ex of + IOException e | isDoesNotExistError e -> return "/tmp" + _ -> throw ex #endif #if defined(mingw32_HOST_OS)