Add a missing import
[ghc-hetmet.git] / compiler / ghci / InteractiveUI.hs
index e4439d6..b017560 100644 (file)
@@ -54,6 +54,7 @@ import System.Posix hiding (getEnv)
 #else
 import GHC.ConsoleHandler ( flushConsole )
 import qualified System.Win32
+import System.FilePath
 #endif
 
 #ifdef USE_READLINE
@@ -158,11 +159,15 @@ builtin_commands = [
 -- 
 -- NOTE: in order for us to override the default correctly, any custom entry
 -- must be a SUBSET of word_break_chars.
-word_break_chars, flagWordBreakChars, filenameWordBreakChars :: String
+#ifdef USE_READLINE
+word_break_chars :: String
 word_break_chars = let symbols = "!#$%&*+/<=>?@\\^|-~"
                        specials = "(),;[]`{}"
                        spaces = " \t\n"
                    in spaces ++ specials ++ symbols
+#endif
+
+flagWordBreakChars, filenameWordBreakChars :: String
 flagWordBreakChars = " \t\n"
 filenameWordBreakChars = " \t\n\\`@$><=;|&{(" -- bash defaults
 
@@ -299,13 +304,15 @@ interactiveUI session srcs maybe_expr = do
         hSetBuffering stdin NoBuffering
 
 #ifdef USE_READLINE
-        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
+        is_tty <- hIsTerminalDevice stdin
+        when is_tty $ do
+            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
 #endif
 
    -- initial context is just the Prelude