X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FIO%2FEncoding%2FUTF16.hs;h=c3b384752e6c06f054f0210a3fbc588322d8a74d;hb=41e8fba828acbae1751628af50849f5352b27873;hp=d44259f1ce82103d9fa6b8d5061950d60e22bce7;hpb=207e64ee80ef749dbb46df0fa6a134b19d5a42a5;p=ghc-base.git diff --git a/GHC/IO/Encoding/UTF16.hs b/GHC/IO/Encoding/UTF16.hs index d44259f..c3b3847 100644 --- a/GHC/IO/Encoding/UTF16.hs +++ b/GHC/IO/Encoding/UTF16.hs @@ -1,5 +1,11 @@ -{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-} -{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE CPP + , NoImplicitPrelude + , BangPatterns + , NondecreasingIndentation + , MagicHash + #-} +{-# OPTIONS_GHC -funbox-strict-fields #-} + ----------------------------------------------------------------------------- -- | -- Module : GHC.IO.Encoding.UTF16 @@ -48,10 +54,11 @@ import GHC.IORef import System.Posix.Internals import Foreign.C import GHC.Show +import GHC.Ptr puts :: String -> IO () puts s = do withCStringLen (s++"\n") $ \(p,len) -> - c_write 1 p (fromIntegral len) + c_write 1 (castPtr p) (fromIntegral len) return () #endif @@ -59,7 +66,8 @@ puts s = do withCStringLen (s++"\n") $ \(p,len) -> -- The UTF-16 codec: either UTF16BE or UTF16LE with a BOM utf16 :: TextEncoding -utf16 = TextEncoding { mkTextDecoder = utf16_DF, +utf16 = TextEncoding { textEncodingName = "UTF-16", + mkTextDecoder = utf16_DF, mkTextEncoder = utf16_EF } utf16_DF :: IO (TextDecoder (Maybe DecodeBuffer)) @@ -138,7 +146,8 @@ bom2 = bomL -- UTF16LE and UTF16BE utf16be :: TextEncoding -utf16be = TextEncoding { mkTextDecoder = utf16be_DF, +utf16be = TextEncoding { textEncodingName = "UTF-16BE", + mkTextDecoder = utf16be_DF, mkTextEncoder = utf16be_EF } utf16be_DF :: IO (TextDecoder ()) @@ -160,7 +169,8 @@ utf16be_EF = }) utf16le :: TextEncoding -utf16le = TextEncoding { mkTextDecoder = utf16le_DF, +utf16le = TextEncoding { textEncodingName = "UTF16-LE", + mkTextDecoder = utf16le_DF, mkTextEncoder = utf16le_EF } utf16le_DF :: IO (TextDecoder ())