diff options
| author | krasimir <krasimir@chalmers.se> | 2008-04-17 12:56:46 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-04-17 12:56:46 +0000 |
| commit | 21e5a60ce20652826a8d74a4357706fca86edfa9 (patch) | |
| tree | bb2197e68ce51bcf84f3cdf7526e0ada801273d4 /src/GF/Devel/ReadFiles.hs | |
| parent | 0ea2798b3cc9bf60e99e01089ea2eddba64a9cbf (diff) | |
ByteString.readFile should be used instead of readFileStrict. This fixes the problem with the open files
Diffstat (limited to 'src/GF/Devel/ReadFiles.hs')
| -rw-r--r-- | src/GF/Devel/ReadFiles.hs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/GF/Devel/ReadFiles.hs b/src/GF/Devel/ReadFiles.hs index a99bc01b2..0a1d69d2a 100644 --- a/src/GF/Devel/ReadFiles.hs +++ b/src/GF/Devel/ReadFiles.hs @@ -35,6 +35,8 @@ import Data.Char import Control.Monad import Data.List import System.Directory +import qualified Data.ByteString.Char8 as BS + type ModName = String type ModEnv = [(ModName,ModTime)] @@ -202,7 +204,7 @@ getImports ps = get [] where get ds file0 = do let name = justModuleName file0 ---- fileBody file0 (p,s) <- tryRead name - let ((typ,mname),imps) = importsOfFile s + let ((typ,mname),imps) = importsOfFile (BS.unpack s) let namebody = justFileName name ioeErr $ testErr (mname == namebody) $ "module name" +++ mname +++ "differs from file name" +++ namebody @@ -317,14 +319,14 @@ lexs s = x:xs where getOptionsFromFile :: FilePath -> IO Options getOptionsFromFile file = do s <- readFileIfStrict file - let ls = filter (isPrefixOf "--#") $ lines s + let ls = filter (isPrefixOf "--#") $ lines (BS.unpack s) return $ fst $ getOptions "-" $ map (unwords . words . drop 3) ls -- | check if old GF file isOldFile :: FilePath -> IO Bool isOldFile f = do s <- readFileIfStrict f - let s' = unComm s + let s' = unComm (BS.unpack s) return $ not (null s') && old (head (words s')) where old = flip elem $ words |
