don't initialize readline needlessly
authorIan Lynagh <igloo@earth.li>
Sat, 12 Jan 2008 15:54:13 +0000 (15:54 +0000)
committerIan Lynagh <igloo@earth.li>
Sat, 12 Jan 2008 15:54:13 +0000 (15:54 +0000)
Readline.initialize spills some escape sequences to stdout for some terminal
types, potentially spoiling  ghc -e  output. So don't initialize readline
unless we're working interactively on a terminal.
Patch from Bertram Felgenhauer <int-e@gmx.de>

compiler/ghci/InteractiveUI.hs

index 2199cc9..e4439d6 100644 (file)
@@ -298,21 +298,21 @@ interactiveUI session srcs maybe_expr = do
         -- intended for the program, so unbuffer stdin.
         hSetBuffering stdin NoBuffering
 
-        -- initial context is just the Prelude
-   prel_mod <- GHC.findModule session (GHC.mkModuleName "Prelude") 
-                                      (Just basePackageId)
-   GHC.setContext session [] [prel_mod]
-
 #ifdef USE_READLINE
-   Readline.initialize
-   Readline.setAttemptedCompletionFunction (Just completeWord)
-   --Readline.parseAndBind "set show-all-if-ambiguous 1"
+        Readline.initialize
+        Readline.setAttemptedCompletionFunction (Just completeWord)
+        --Readline.parseAndBind "set show-all-if-ambiguous 1"
 
-   Readline.setBasicWordBreakCharacters word_break_chars
-   Readline.setCompleterWordBreakCharacters word_break_chars
-   Readline.setCompletionAppendCharacter Nothing
+        Readline.setBasicWordBreakCharacters word_break_chars
+        Readline.setCompleterWordBreakCharacters word_break_chars
+        Readline.setCompletionAppendCharacter Nothing
 #endif
 
+   -- initial context is just the Prelude
+   prel_mod <- GHC.findModule session (GHC.mkModuleName "Prelude") 
+                                      (Just basePackageId)
+   GHC.setContext session [] [prel_mod]
+
    default_editor <- findEditor
 
    startGHCi (runGHCi srcs maybe_expr)