diff options
| author | krasimir <krasimir@chalmers.se> | 2008-04-22 11:39:46 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-04-22 11:39:46 +0000 |
| commit | fc111c1a7910ab4a2a1bf40c0473bbaacadedd61 (patch) | |
| tree | 6f9c2bed83320272ebe41f314fd930f2a13ce3d9 /src/GF/Infra/ReadFiles.hs | |
| parent | 7a6adbf35932efeed283f762b300b6f5a3b21d8a (diff) | |
use the standard System.FilePath module instead of our own broken file path manipulation functions
Diffstat (limited to 'src/GF/Infra/ReadFiles.hs')
| -rw-r--r-- | src/GF/Infra/ReadFiles.hs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/GF/Infra/ReadFiles.hs b/src/GF/Infra/ReadFiles.hs index 4707015fd..ce33ec23f 100644 --- a/src/GF/Infra/ReadFiles.hs +++ b/src/GF/Infra/ReadFiles.hs @@ -35,6 +35,7 @@ import Data.Char import Control.Monad import Data.List import System.Directory +import System.FilePath type ModName = String type ModEnv = [(ModName,ModTime)] @@ -58,7 +59,7 @@ getAllFiles opts ps env file = do let paths = [(f,p) | ((f,_),p) <- ds] let pds1 = [(p,f) | f <- ds1, Just p <- [lookup f paths]] if oElem fromSource opts - then return [gfFile (prefixPathName p f) | (p,f) <- pds1] + then return [gfFile (p </> f) | (p,f) <- pds1] else do @@ -84,7 +85,7 @@ selectFormat :: Options -> ModEnv -> (InitPath,ModName) -> IO (ModName,(InitPath,(CompStatus,Maybe ModTime))) selectFormat opts env (p,f) = do - let pf = prefixPathName p f + let pf = p </> f let mtenv = lookup f env -- Nothing if f is not in env let rtenv = lookup (resModName f) env let fromComp = oElem isCompiled opts -- i -gfc @@ -184,23 +185,23 @@ needCompile opts headers sfiles0 = paths $ res $ mark $ iter changed where -- construct list of paths to read paths cs = [mkName f p st | (f,(p,st)) <- cs, elem st [CSComp, CSRead,CSRes]] - mkName f p st = mk $ prefixPathName p f where + mkName f p st = mk (p </> f) where mk = case st of CSComp -> gfFile CSRead -> gfcFile CSRes -> gfrFile isGFC :: FilePath -> Bool -isGFC = (== "gfc") . fileSuffix +isGFC = (== ".gfc") . takeExtensions gfcFile :: FilePath -> FilePath -gfcFile = suffixFile "gfc" +gfcFile f = addExtension f "gfc" gfrFile :: FilePath -> FilePath -gfrFile = suffixFile "gfr" +gfrFile f = addExtension f "gfr" gfFile :: FilePath -> FilePath -gfFile = suffixFile "gf" +gfFile f = addExtension f "gf" resModName :: ModName -> ModName resModName = ('#':) @@ -210,10 +211,10 @@ resModName = ('#':) getImports :: [InitPath] -> FileName -> IOE [(ModuleHeader,InitPath)] getImports ps = get [] where get ds file0 = do - let name = justModuleName file0 ---- fileBody file0 + let name = dropExtension file0 ---- dropExtension file0 (p,s) <- tryRead name let ((typ,mname),imps) = importsOfFile s - let namebody = justFileName name + let namebody = takeFileName name ioeErr $ testErr (mname == namebody) $ "module name" +++ mname +++ "differs from file name" +++ namebody case imps of |
