From fb4b15fd8da7e36a2a7aee70fe0b084096f76a1a Mon Sep 17 00:00:00 2001 From: panne Date: Sun, 14 Nov 2004 20:25:54 +0000 Subject: [PATCH] [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. --- System/Directory.hs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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/. -- 1.7.10.4