diff options
Diffstat (limited to 'compiler/ghci/InteractiveUI.hs')
-rw-r--r-- | compiler/ghci/InteractiveUI.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/ghci/InteractiveUI.hs b/compiler/ghci/InteractiveUI.hs index 268f05e305..4db8900a2b 100644 --- a/compiler/ghci/InteractiveUI.hs +++ b/compiler/ghci/InteractiveUI.hs @@ -1499,10 +1499,13 @@ setPrompt value = do st <- getGHCiState if null value then io $ hPutStrLn stderr $ "syntax: :set prompt <prompt>, currently \"" ++ prompt st ++ "\"" - else setGHCiState st{ prompt = remQuotes value } - where - remQuotes ('\"':xs) | not (null xs) && last xs == '\"' = init xs - remQuotes x = x + else case value of + '\"' : _ -> case reads value of + [(value', xs)] | all isSpace xs -> + setGHCiState (st { prompt = value' }) + _ -> + io $ hPutStrLn stderr "Can't parse prompt string. Use Haskell syntax." + _ -> setGHCiState (st { prompt = value }) setOptions wds = do -- first, deal with the GHCi opts (+s, +t, etc.) |