From ba9c70dff7bb0f8e5aa18ba65caccf2b94897336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Fri, 18 Jul 2014 02:13:40 +0200 Subject: [PATCH] Fall back to assuming ghc-mid is on PATH when exeutable name is not available --- Language/Haskell/GhcMod/Find.hs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Language/Haskell/GhcMod/Find.hs b/Language/Haskell/GhcMod/Find.hs index 2a9638b..3672084 100644 --- a/Language/Haskell/GhcMod/Find.hs +++ b/Language/Haskell/GhcMod/Find.hs @@ -34,7 +34,7 @@ import Name (getOccString) import System.Directory (doesDirectoryExist, getAppUserDataDirectory, doesFileExist, getModificationTime) import System.FilePath ((), takeDirectory) import System.IO -import System.Environment (getExecutablePath) +import System.Environment #ifndef MIN_VERSION_containers #define MIN_VERSION_containers(x,y,z) 1 @@ -90,11 +90,18 @@ loadSymbolDb = SymbolDb <$> readSymbolDb ghcModExecutable :: IO FilePath #ifndef SPEC ghcModExecutable = do - dir <- takeDirectory <$> getExecutablePath + dir <- getExecutablePath' return $ dir "ghc-mod" #else ghcModExecutable = return "dist/build/ghc-mod/ghc-mod" #endif + where + getExecutablePath' :: IO FilePath +# if __GLASGOW_HASKELL__ >= 706 + getExecutablePath' = takeDirectory <$> getExecutablePath +# else + getExecutablePath' = return "" +# endif readSymbolDb :: IO (Map Symbol [ModuleString]) readSymbolDb = handle (\(SomeException _) -> return M.empty) $ do