From: panne Date: Sun, 14 Nov 2004 20:25:54 +0000 (+0000) Subject: [project @ 2004-11-14 20:25:54 by panne] X-Git-Tag: nhc98-1-18-release~186 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;ds=sidebyside;h=fb4b15fd8da7e36a2a7aee70fe0b084096f76a1a;p=ghc-base.git [project @ 2004-11-14 20:25:54 by panne] Tiny refactoring, mostly used as a reminder that '#if blah_platform' tests are evil and should be replaced by feature-based test (autoconf!) and concentrated in few modules. System.FilePath is another great example for this, all #ifs should be replaced by a function handling a possible drive letter + a few separator constants. --- diff --git a/System/Directory.hs b/System/Directory.hs index 50e77ab..d3133d4 100644 --- a/System/Directory.hs +++ b/System/Directory.hs @@ -523,11 +523,7 @@ findExecutable binary = do path <- getEnv "PATH" search (parseSearchPath path) where -#ifdef mingw32_TARGET_OS - fileName = binary `joinFileExt` "exe" -#else - fileName = binary -#endif + fileName = binary `joinFileExt` drop 1 exeExt search :: [FilePath] -> IO (Maybe FilePath) search [] = return Nothing @@ -537,6 +533,14 @@ findExecutable binary = do if b then return (Just path) else search ds +-- ToDo: This should be determined via autoconf (AC_EXEEXT) +exeExt :: String +#ifdef mingw32_TARGET_OS +exeExt = ".exe" +#else +exeExt = "" +#endif + #ifdef __GLASGOW_HASKELL__ {- |@'getDirectoryContents' dir@ returns a list of /all/ entries in /dir/.