From ff8799ef2c8d0ab976fa9fc00fc4bc94e1ca5af9 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 31 Oct 2008 14:52:27 +0000 Subject: [PATCH] :set prompt now understand Haskell String syntax; trace #2652 --- compiler/ghci/InteractiveUI.hs | 11 +++++++---- docs/users_guide/ghci.xml | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/compiler/ghci/InteractiveUI.hs b/compiler/ghci/InteractiveUI.hs index 268f05e..4db8900 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 , 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.) diff --git a/docs/users_guide/ghci.xml b/docs/users_guide/ghci.xml index 402c7cb..d929548 100644 --- a/docs/users_guide/ghci.xml +++ b/docs/users_guide/ghci.xml @@ -2386,7 +2386,9 @@ bar Inside prompt, the sequence %s is replaced by the names of the modules currently in scope, and %% is - replaced by %. + replaced by %. If prompt + starts with " then it is parsed as a Haskell String; + otherwise it is treated as a literal string. -- 1.7.10.4