summaryrefslogtreecommitdiff
path: root/src/GF/System
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/System')
-rw-r--r--src/GF/System/NoReadline.hs27
-rw-r--r--src/GF/System/Readline.hs32
-rw-r--r--src/GF/System/UseReadline.hs25
3 files changed, 56 insertions, 28 deletions
diff --git a/src/GF/System/NoReadline.hs b/src/GF/System/NoReadline.hs
new file mode 100644
index 000000000..138ba4e28
--- /dev/null
+++ b/src/GF/System/NoReadline.hs
@@ -0,0 +1,27 @@
+----------------------------------------------------------------------
+-- |
+-- Module : GF.System.NoReadline
+-- Maintainer : BB
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/05/10 15:04:01 $
+-- > CVS $Author: bringert $
+-- > CVS $Revision: 1.1 $
+--
+-- Do not use readline.
+-----------------------------------------------------------------------------
+
+module GF.System.NoReadline (fetchCommand) where
+
+import System.IO.Error (try)
+import System.IO (stdout,hFlush)
+
+fetchCommand :: String -> IO (String)
+fetchCommand s = do
+ putStr s
+ hFlush stdout
+ res <- try getLine
+ case res of
+ Left e -> return "q"
+ Right l -> return l
diff --git a/src/GF/System/Readline.hs b/src/GF/System/Readline.hs
index 588b277d0..c12493f98 100644
--- a/src/GF/System/Readline.hs
+++ b/src/GF/System/Readline.hs
@@ -7,9 +7,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/05/10 14:55:01 $
+-- > CVS $Date: 2005/05/10 15:04:01 $
-- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
+-- > CVS $Revision: 1.2 $
--
-- Uses the right readline library to read user input.
-----------------------------------------------------------------------------
@@ -18,34 +18,10 @@ module GF.System.Readline (fetchCommand) where
#ifdef USE_READLINE
-import System.Console.Readline (readline, addHistory)
+import GF.System.UseReadline (fetchCommand)
#else
-import System.IO.Error (try)
-import System.IO (stdout,hFlush)
-
-#endif
-
-#ifdef USE_READLINE
-
-fetchCommand :: String -> IO (String)
-fetchCommand s = do
- res <- readline s
- case res of
- Nothing -> return "q"
- Just s -> do addHistory s
- return s
-
-#else
-
-fetchCommand :: String -> IO (String)
-fetchCommand s = do
- putStr s
- hFlush stdout
- res <- try getLine
- case res of
- Left e -> return "q"
- Right l -> return l
+import GF.System.NoReadline (fetchCommand)
#endif
diff --git a/src/GF/System/UseReadline.hs b/src/GF/System/UseReadline.hs
new file mode 100644
index 000000000..c84b9d7f4
--- /dev/null
+++ b/src/GF/System/UseReadline.hs
@@ -0,0 +1,25 @@
+----------------------------------------------------------------------
+-- |
+-- Module : GF.System.UseReadline
+-- Maintainer : BB
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/05/10 15:04:01 $
+-- > CVS $Author: bringert $
+-- > CVS $Revision: 1.1 $
+--
+-- Use GNU readline
+-----------------------------------------------------------------------------
+
+module GF.System.UseReadline (fetchCommand) where
+
+import System.Console.Readline (readline, addHistory)
+
+fetchCommand :: String -> IO (String)
+fetchCommand s = do
+ res <- readline s
+ case res of
+ Nothing -> return "q"
+ Just s -> do addHistory s
+ return s