From e7a3680052a9b3ef206af4cd934b6a0d61ffb7ad Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Tue, 12 Sep 2023 11:57:54 +0200 Subject: Separate reply message for :q --- src/Ghci.hs | 4 ++-- src/Main.hs | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Ghci.hs b/src/Ghci.hs index ae44881..85081c5 100644 --- a/src/Ghci.hs +++ b/src/Ghci.hs @@ -61,7 +61,7 @@ parseSettingsReply = ParseSettings 200 True parseSettingsPaste :: ParseSettings parseSettingsPaste = ParseSettings 50000 False -data Result a = Error String | Ignored | Return a +data Result a = Error String | Ignored | Return a | Exited deriving (Show) makeGhci :: IO Ghci @@ -95,7 +95,7 @@ runStmtClever ghci pset line = putStrLn "ghci: restarting due to :quit" hFlush stdout ghci' <- makeGhci - return (ghci', Return "") + return (ghci', Exited) _ -> runStmt ghci pset line _ -> runStmt ghci pset line where diff --git a/src/Main.hs b/src/Main.hs index 8990efb..89e27d7 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -102,6 +102,7 @@ runInGhci ghci pset message = do Ignored -> return (ghci', Nothing) Return "" -> return (ghci', Just (T.pack "")) Return s -> return (ghci', Just (T.pack s)) + Exited -> return (ghci', Just (T.pack "")) data ReqKind = Reply | Paste deriving (Show) @@ -141,6 +142,7 @@ mainGHCI = do Return output -> putStrLn $ "output = <" ++ output ++ ">" Ignored -> putStrLn "" Error err -> putStrLn err + Exited -> putStrLn $ "" loop ghci' makeGhci >>= loop -- cgit v1.2.3-54-g00ecf