summaryrefslogtreecommitdiff
path: root/libraries/base/codepages/MakeTable.hs
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2010-10-31 16:17:32 +0000
committerIan Lynagh <igloo@earth.li>2010-10-31 16:17:32 +0000
commitdb5a9f514725061683e91118e8ff608c80104d36 (patch)
treeed95e3b1b6fe773c8195ad32793f3ff3ed4da7ca /libraries/base/codepages/MakeTable.hs
parente44eac21d911766dec925245a12a8c71eba63bf6 (diff)
downloadhaskell-db5a9f514725061683e91118e8ff608c80104d36.tar.gz
Add a Makefile for MakeTable, and remove GHC.Num generated import
Diffstat (limited to 'libraries/base/codepages/MakeTable.hs')
-rw-r--r--libraries/base/codepages/MakeTable.hs17
1 files changed, 14 insertions, 3 deletions
diff --git a/libraries/base/codepages/MakeTable.hs b/libraries/base/codepages/MakeTable.hs
index 408d932a75..cd9a8b6efb 100644
--- a/libraries/base/codepages/MakeTable.hs
+++ b/libraries/base/codepages/MakeTable.hs
@@ -33,11 +33,22 @@ import Control.Exception(evaluate)
main :: IO ()
main = do
moduleName:outFile:files <- getArgs
- sbes <- mapM readMapAndIx files
+ let badFiles = -- These fail with an error like
+ -- MakeTable: Enum.toEnum{Word8}: tag (33088) is outside of bounds (0,255)
+ -- I have no idea what's going on, so for now we just
+ -- skip them.
+ ["CPs/CP932.TXT",
+ "CPs/CP936.TXT",
+ "CPs/CP949.TXT",
+ "CPs/CP950.TXT"]
+ let files' = filter (`notElem` badFiles) files
+ sbes <- mapM readMapAndIx files'
+ putStrLn "Writing output"
withBinaryFile outFile WriteMode $ flip hPutStr
- $ unlines $ makeTableFile moduleName files sbes
+ $ unlines $ makeTableFile moduleName files' sbes
where
readMapAndIx f = do
+ putStrLn ("Reading " ++ f)
m <- readMap f
return (codePageNum f, m)
@@ -201,7 +212,7 @@ firstComment files = map ("-- " ++) $
theImports :: [String]
theImports = map ("import " ++ )
- ["GHC.Prim", "GHC.Base", "GHC.Word", "GHC.Num"]
+ ["GHC.Prim", "GHC.Base", "GHC.Word"]
theTypes :: [String]
theTypes = [ "data ConvArray a = ConvArray Addr#"