From 48a327ddeef8ba96e6db30bdac687346d97ee1b0 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 19 Nov 2010 10:49:43 +0000 Subject: [PATCH] MkSynopsis script with non-utf8 source files --- lib/doc/MkSynopsis.hs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/doc/MkSynopsis.hs b/lib/doc/MkSynopsis.hs index 0aa741128..c9a8b1d79 100644 --- a/lib/doc/MkSynopsis.hs +++ b/lib/doc/MkSynopsis.hs @@ -1,6 +1,7 @@ import System import Char import List +import qualified Data.ByteString.Char8 as BS type Cats = [(String,String,String)] type Rules = [(String,String,String)] @@ -39,6 +40,8 @@ main = do link "Source 2:" structuralAPI space rs <- getRules syntaxAPI +--- putStrLn $ unlines ["p -cat=" ++ last (words t) ++ +--- " \"" ++ e ++ "\"" | (_,t,e) <- rs, not (null e)] ---- rs2 <- getRules structuralAPI delimit $ mkSplitTables True isLatex cs $ rs ++ rs2 space @@ -50,7 +53,7 @@ main = do -- delimit rs space title "Lexical Paradigms" - mapM_ (putParadigms isLatex cs) paradigmFiles +---- mapM_ (putParadigms isLatex cs) paradigmFiles space include "synopsis-browse.txt" space @@ -89,7 +92,7 @@ rulesTable hasEx isLatex cs file = do getRules :: FilePath -> IO Rules getRules file = do - ss <- readFile file >>= return . lines + ss <- readFileC file >>= return . lines return $ getrs [] ss where getrs rs ss = case ss of @@ -244,3 +247,9 @@ showTyp cs = unwords . map f . words isCat cat = cat `notElem` ["Str","Int"] && all (\c -> isAlphaNum c || c == '\'') cat && isUpper (head cat) + +-- to work around GHC 6.12 file input +readFileC file = do + let tmp = file ++ ".tmp" + system $ "iconv -f ISO-8859-1 -t UTF-8 " ++ file ++ " >" ++ tmp + readFile tmp