From 4a4b87decd8a2c989d0d68a65c1ae0d1e115ecf5 Mon Sep 17 00:00:00 2001 From: simonmar Date: Wed, 12 Jan 2005 13:36:34 +0000 Subject: [PATCH] [project @ 2005-01-12 13:36:30 by simonmar] Restore splitting at ':' for the -i option, which I broke recently. --- ghc/compiler/Makefile | 1 - ghc/compiler/main/DriverFlags.hs | 4 +++- ghc/compiler/main/DriverState.hs | 13 ++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ghc/compiler/Makefile b/ghc/compiler/Makefile index 26ed9fb..4cadc67 100644 --- a/ghc/compiler/Makefile +++ b/ghc/compiler/Makefile @@ -190,7 +190,6 @@ $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile @echo "cProjectPatchLevel = \"$(ProjectPatchLevel)\"" >> $(CONFIG_HS) @echo "cBooterVersion = \"$(GhcVersion)\"" >> $(CONFIG_HS) @echo "cHscIfaceFileVersion = \"$(HscIfaceFileVersion)\"" >> $(CONFIG_HS) - @echo "cHOSTPLATFORM = \"$(HOSTPLATFORM)\"" >> $(CONFIG_HS) @echo "cTARGETPLATFORM = \"$(TARGETPLATFORM)\"" >> $(CONFIG_HS) @echo "cTARGETOS = \"$(TargetOS_CPP)\"" >> $(CONFIG_HS) @echo "cTARGETARCH = \"$(TargetArch_CPP)\"" >> $(CONFIG_HS) diff --git a/ghc/compiler/main/DriverFlags.hs b/ghc/compiler/main/DriverFlags.hs index 2787040..6d24d53 100644 --- a/ghc/compiler/main/DriverFlags.hs +++ b/ghc/compiler/main/DriverFlags.hs @@ -543,7 +543,9 @@ ignorePackage p = -- -i on its own deletes the import paths addImportPath "" = updDynFlags (\s -> s{importPaths = []}) -addImportPath p = updDynFlags (\s -> s{importPaths = p : importPaths s}) +addImportPath p = do + paths <- splitPathList p + updDynFlags (\s -> s{importPaths = importPaths s ++ paths}) -- we can only switch between HscC, HscAsmm, and HscILX with dynamic flags -- (-fvia-C, -fasm, -filx respectively). diff --git a/ghc/compiler/main/DriverState.hs b/ghc/compiler/main/DriverState.hs index 23c7cbb..cb8e6a9 100644 --- a/ghc/compiler/main/DriverState.hs +++ b/ghc/compiler/main/DriverState.hs @@ -205,21 +205,20 @@ GLOBAL_VAR(v_Framework_paths, [], [String]) GLOBAL_VAR(v_Cmdline_frameworks, [], [String]) #endif -addToOrDeleteDirList :: IORef [String] -> String -> IO () -addToOrDeleteDirList ref "" = writeIORef ref [] -addToOrDeleteDirList ref path = addToDirList ref path - addToDirList :: IORef [String] -> String -> IO () addToDirList ref path = do paths <- readIORef ref - shiny_new_ones <- splitUp path - writeIORef ref (paths ++ filter notNull shiny_new_ones) + shiny_new_ones <- splitPathList path + writeIORef ref (paths ++ shiny_new_ones) + + +splitPathList :: String -> IO [String] +splitPathList s = do ps <- splitUp s; return (filter notNull ps) -- empty paths are ignored: there might be a trailing -- ':' in the initial list, for example. Empty paths can -- cause confusion when they are translated into -I options -- for passing to gcc. where - splitUp ::String -> IO [String] #ifdef mingw32_TARGET_OS -- 'hybrid' support for DOS-style paths in directory lists. -- -- 1.7.10.4