From a852f1dd288c5a34b36a7f8bc21f4a338a19355c Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 5 Jan 2011 15:45:48 +0000 Subject: [PATCH] fix up multi-line GHCi patch (#4316) --- ghc/InteractiveUI.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ghc/InteractiveUI.hs b/ghc/InteractiveUI.hs index cf90ae7..278470f 100644 --- a/ghc/InteractiveUI.hs +++ b/ghc/InteractiveUI.hs @@ -655,7 +655,7 @@ runOneCommand eh getCmd = do ml <- lift $ isOptionSet Multiline if ml then do - mb_stmt <- checkInputForLayout stmt getCmd + mb_stmt <- checkInputForLayout stmt 1 getCmd case mb_stmt of Nothing -> return $ Just True Just ml_stmt -> do @@ -667,14 +667,14 @@ runOneCommand eh getCmd = do -- #4316 -- lex the input. If there is an unclosed layout context, request input -checkInputForLayout :: String -> InputT GHCi (Maybe String) +checkInputForLayout :: String -> Int -> InputT GHCi (Maybe String) -> InputT GHCi (Maybe String) -checkInputForLayout stmt getStmt = do +checkInputForLayout stmt line_number getStmt = do dflags' <- lift $ getDynFlags let dflags = xopt_set dflags' Opt_AlternativeLayoutRule st <- lift $ getGHCiState let buf = stringToStringBuffer stmt - loc = mkSrcLoc (fsLit (progname st)) (line_number st) 1 + loc = mkSrcLoc (fsLit (progname st)) line_number 1 pstate = Lexer.mkPState dflags buf loc case Lexer.unP goToEnd pstate of (Lexer.POk _ False) -> return $ Just stmt @@ -697,7 +697,7 @@ checkInputForLayout stmt getStmt = do Nothing -> return Nothing Just str -> if str == "" then return $ Just stmt - else checkInputForLayout (stmt++"\n"++str) getStmt + else checkInputForLayout (stmt++"\n"++str) (line_number+1) getStmt where goToEnd = do eof <- Lexer.nextIsEOF if eof -- 1.7.10.4