summaryrefslogtreecommitdiff
path: root/main/Terminal.hs
diff options
context:
space:
mode:
Diffstat (limited to 'main/Terminal.hs')
-rw-r--r--main/Terminal.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/main/Terminal.hs b/main/Terminal.hs
index d66094f..5f061d5 100644
--- a/main/Terminal.hs
+++ b/main/Terminal.hs
@@ -51,6 +51,7 @@ data Terminal = Terminal
data TerminalLine = TerminalLine
{ tlTerminal :: Terminal
+ , tlLineCount :: Int
}
data Input
@@ -323,11 +324,13 @@ setPrompt term@Terminal {..} prompt = do
printLine :: Terminal -> String -> IO TerminalLine
printLine tlTerminal@Terminal {..} str = do
withMVar termLock $ \_ -> do
+ let strLines = lines str
+ tlLineCount = length strLines
promptLine <- atomically $ do
readTVar termShowPrompt >>= \case
True -> getCurrentPromptLine tlTerminal
False -> return ""
- putStr $ "\r\ESC[K" <> str <> "\n\ESC[K" <> promptLine
+ putStr $ "\r\ESC[K" <> unlines strLines <> "\ESC[K" <> promptLine
drawBottomLines tlTerminal
hFlush stdout
return TerminalLine {..}