Commit ff8799ef authored by Ian Lynagh's avatar Ian Lynagh

:set prompt now understand Haskell String syntax; trace #2652

parent 2dce32ca
......@@ -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.)
......
......@@ -2386,7 +2386,9 @@ bar
Inside <replaceable>prompt</replaceable>, the sequence
<literal>%s</literal> is replaced by the names of the
modules currently in scope, and <literal>%%</literal> is
replaced by <literal>%</literal>.</para>
replaced by <literal>%</literal>. If <replaceable>prompt</replaceable>
starts with &quot; then it is parsed as a Haskell String;
otherwise it is treated as a literal string.</para>
</listitem>
</varlistentry>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment