X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FMIMEType%2FGuess.hs;h=a0ea1646b4e8e3c29493e0e89743145db825b0c5;hb=8e78bc83bfe67a376293c346ae0b30f1a684c787;hp=93a1479837fb4c98f015faa163f48430d9778dd3;hpb=30fcb38426696db8b80d322196cc594431e30407;p=Lucu.git diff --git a/Network/HTTP/Lucu/MIMEType/Guess.hs b/Network/HTTP/Lucu/MIMEType/Guess.hs index 93a1479..a0ea164 100644 --- a/Network/HTTP/Lucu/MIMEType/Guess.hs +++ b/Network/HTTP/Lucu/MIMEType/Guess.hs @@ -12,7 +12,6 @@ module Network.HTTP.Lucu.MIMEType.Guess where import qualified Data.ByteString.Lazy.Char8 as B -import Data.ByteString.Lazy.Char8 (ByteString) import qualified Data.Map as M import Data.Map (Map) import Data.Maybe @@ -30,14 +29,16 @@ type ExtMap = Map String MIMEType -- |Guess the MIME Type of file. guessTypeByFileName :: ExtMap -> FilePath -> Maybe MIMEType guessTypeByFileName extMap fpath - = let ext = last $ splitBy (== '.') fpath + = extMap `seq` fpath `seq` + let ext = last $ splitBy (== '.') fpath in M.lookup ext extMap >>= return -- |Read an Apache mime.types and parse it. parseExtMapFile :: FilePath -> IO ExtMap parseExtMapFile fpath - = do file <- B.readFile fpath + = fpath `seq` + do file <- B.readFile fpath case parse (allowEOF extMapP) file of (Success xs, _) -> return $ compile xs (_, input') -> let near = B.unpack $ B.take 100 input' @@ -90,7 +91,6 @@ serializeExtMap extMap moduleName variableName imports = [ HsImportDecl undefined (Module "Network.HTTP.Lucu.MIMEType") False Nothing Nothing , HsImportDecl undefined (Module "Network.HTTP.Lucu.MIMEType.Guess") False Nothing Nothing , HsImportDecl undefined (Module "Data.Map") True (Just (Module "M")) Nothing - , HsImportDecl undefined (Module "Data.Map") False Nothing (Just (False, [HsIAbs (HsIdent "Map")])) ] decls = [ HsTypeSig undefined [HsIdent variableName] (HsQualType []