use LANGUAGE instead of OPTIONS_GHC
[ghc-base.git] / GHC / IO / Handle.hs
index bf706e0..10b7004 100644 (file)
@@ -1,5 +1,6 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -XRecordWildCards #-}
 {-# OPTIONS_GHC -fno-warn-unused-matches #-}
+{-# LANGUAGE NoImplicitPrelude, RecordWildCards #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  GHC.IO.Handle
@@ -270,6 +271,7 @@ hSetEncoding :: Handle -> TextEncoding -> IO ()
 hSetEncoding hdl encoding = do
   withAllHandles__ "hSetEncoding" hdl $ \h_@Handle__{..} -> do
     flushCharBuffer h_
+    closeTextCodecs h_
     openTextEncoding (Just encoding) haType $ \ mb_encoder mb_decoder -> do
     bbuf <- readIORef haByteBuffer
     ref <- newIORef (error "last_decode")
@@ -394,7 +396,8 @@ hSetPosn (HandlePosn h i) = hSeek h AbsoluteSeek i
 -- This operation may fail with:
 --
 --  * 'isIllegalOperationError' if the Handle is not seekable, or does
---    not support the requested seek mode.
+--     not support the requested seek mode.
+--
 --  * 'isPermissionError' if a system resource limit would be exceeded.
 
 hSeek :: Handle -> SeekMode -> Integer -> IO () 
@@ -572,6 +575,7 @@ hSetBinaryMode handle bin =
   withAllHandles__ "hSetBinaryMode" handle $ \ h_@Handle__{..} ->
     do 
          flushCharBuffer h_
+         closeTextCodecs h_
 
          let mb_te | bin       = Nothing
                    | otherwise = Just localeEncoding