summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-04-15 22:22:40 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-04-15 22:22:40 +0200
commitfe09107946202ad0216d518c95dcff6d159d76b0 (patch)
tree5a10b33bc5da899767d0fba79d62d2d9e408e041
parent768d33667faca870f10ac6e39f3400ea9810fb7f (diff)
Terminal: handle end-of-file errorHEADmaster
-rw-r--r--main/Terminal.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/main/Terminal.hs b/main/Terminal.hs
index 5dc3612..150bd8c 100644
--- a/main/Terminal.hs
+++ b/main/Terminal.hs
@@ -31,8 +31,9 @@ import Data.List
import Data.Text (Text)
import Data.Text qualified as T
-import System.IO
import System.Console.ANSI
+import System.IO
+import System.IO.Error
data Terminal = Terminal
@@ -107,7 +108,7 @@ termPutStr Terminal {..} str = do
getInput :: IO Input
getInput = do
- getChar >>= \case
+ handleJust (guard . isEOFError) (\() -> return InputEnd) $ getChar >>= \case
'\ESC' -> do
esc <- readEsc
case parseEsc esc of