X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FDirectory.hs;h=d705c0d27ed711f3bb881fd0b87b33015e58c4d9;hb=29fd272657d1c13500e7cd5f670aadc8ed41c445;hp=42ed6afe51c88e85171a9ef3763c419ee7815c6a;hpb=e5bc07906c3690afa056029f94e6aae5ef4dbaa6;p=haskell-directory.git diff --git a/System/Directory.hs b/System/Directory.hs index 42ed6af..d705c0d 100644 --- a/System/Directory.hs +++ b/System/Directory.hs @@ -584,7 +584,9 @@ canonicalizePath fpath = #else do c_realpath pInPath pOutPath #endif - peekCString pOutPath + path <- peekCString pOutPath + return (normalise path) + -- normalise does more stuff, like upper-casing the drive letter #if defined(mingw32_HOST_OS) foreign import stdcall unsafe "GetFullPathNameA" @@ -1025,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)