@@ -16,6 +16,8 @@ import qualified Data.String.UTF8 as UTF8
1616import Data.IORef
1717import Data.Monoid ( mappend )
1818
19+import System.IO
20+
1921type InlineM v = State Attr v
2022
2123back_color :: Color -> InlineM ()
@@ -52,6 +54,7 @@ put_attr_change t c = do
5254 attr' = limit_attr_for_display d attr
5355 fattr' = fix_display_attr fattr attr'
5456 diffs = display_attr_diffs fattr fattr'
57+ liftIO $ hFlush stdout
5558 liftIO $ marshall_to_terminal t ( attr_required_bytes d fattr attr' diffs )
5659 ( serialize_set_attr d fattr attr' diffs )
5760 liftIO $ modifyIORef ( state_ref t ) $ \s -> s { known_fattr = Just fattr' }
@@ -60,6 +63,7 @@ put_attr_change t c = do
6063put_string :: ( Applicative m, MonadIO m ) => TerminalHandle -> String -> m ()
6164put_string t s = do
6265 let s_utf8 = UTF8.fromString s
66+ liftIO $ hFlush stdout
6367 liftIO $ marshall_to_terminal t ( utf8_text_required_bytes s_utf8)
6468 ( serialize_utf8_text s_utf8 )
6569