From cfc60feeabb43bf1fa3fd5207ce82e84fd48b3c0 Mon Sep 17 00:00:00 2001 From: hallgren Date: Wed, 20 Apr 2011 14:30:49 +0000 Subject: [PATCH] Ctrl-C shouldn't terminate the GF shell This quick fix should make Ctrl-C in the GF shell behave more like it does in other shells: even if no command is running, Ctrl-C now just gives you a new prompt instead of terminating the shell. --- src/compiler/GFI.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/compiler/GFI.hs b/src/compiler/GFI.hs index 9f312e9dd..58c6df92e 100644 --- a/src/compiler/GFI.hs +++ b/src/compiler/GFI.hs @@ -294,10 +294,11 @@ fetchCommand gfenv = do Haskeline.historyFile = Just path, Haskeline.autoAddHistory = True } - res <- Haskeline.runInputT settings (Haskeline.getInputLine (prompt (commandenv gfenv))) + res <- runInterruptibly $ Haskeline.runInputT settings (Haskeline.getInputLine (prompt (commandenv gfenv))) case res of - Nothing -> return "q" - Just s -> return s + Left _ -> return "" + Right Nothing -> return "q" + Right (Just s) -> return s importInEnv :: GFEnv -> Options -> [FilePath] -> IO GFEnv importInEnv gfenv opts files