X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Flib%2Fcompat%2FCompat%2FDirectory.hs;h=ecd5a996857a00c294a9f8a8829140db70282c76;hb=153b9cb9b11e05c4edb1b6bc0a7b972660e41f70;hp=0dfdb88710065b0ecc6354eaf04f9b6fea8f1c3f;hpb=a3ca2db7709509b2bab595ec68b9fcd4a1d884d2;p=ghc-hetmet.git diff --git a/ghc/lib/compat/Compat/Directory.hs b/ghc/lib/compat/Compat/Directory.hs index 0dfdb88..ecd5a99 100644 --- a/ghc/lib/compat/Compat/Directory.hs +++ b/ghc/lib/compat/Compat/Directory.hs @@ -21,25 +21,29 @@ module Compat.Directory ( createDirectoryIfMissing ) where -#if __GLASGOW_HASKELL__ < 603 -#include "config.h" -#endif +#include "../../includes/ghcconfig.h" -import Control.Exception ( bracket ) -import Control.Monad ( when ) import System.Environment (getEnv) -import System.FilePath +import System.Directory.Internals +#if __GLASGOW_HASKELL__ > 600 +import Control.Exception ( bracket ) +import Control.Monad ( when ) +import Foreign.Marshal.Alloc ( allocaBytes ) import System.IO (IOMode(..), openBinaryFile, hGetBuf, hPutBuf, hClose) import System.IO.Error ( try ) -import Foreign.Marshal.Alloc ( allocaBytes ) -import System.Directory(doesFileExist, doesDirectoryExist, getPermissions, setPermissions, createDirectory) -#if defined(__GLASGOW_HASKELL__) import GHC.IOBase ( IOException(..) ) +#else +import System.IO ( try ) +#endif +#if __GLASGOW_HASKELL__ && defined(mingw32_HOST_OS) +import Foreign.Ptr +import Foreign.C #endif +import System.Directory(doesFileExist, doesDirectoryExist, getPermissions, setPermissions, createDirectory) getAppUserDataDirectory :: String -> IO FilePath getAppUserDataDirectory appName = do -#if __GLASGOW_HASKELL__ && defined(mingw32_TARGET_OS) +#if __GLASGOW_HASKELL__ && defined(mingw32_HOST_OS) allocaBytes long_path_size $ \pPath -> do r <- c_SHGetFolderPath nullPtr csidl_APPDATA nullPtr 0 pPath s <- peekCString pPath @@ -49,7 +53,7 @@ getAppUserDataDirectory appName = do return (path++'/':'.':appName) #endif -#if __GLASGOW_HASKELL__ && defined(mingw32_TARGET_OS) +#if __GLASGOW_HASKELL__ && defined(mingw32_HOST_OS) foreign import stdcall unsafe "SHGetFolderPathA" c_SHGetFolderPath :: Ptr () -> CInt @@ -97,7 +101,7 @@ findExecutable binary = do path <- getEnv "PATH" search (parseSearchPath path) where -#ifdef mingw32_TARGET_OS +#ifdef mingw32_HOST_OS fileName = binary `joinFileExt` "exe" #else fileName = binary