summaryrefslogtreecommitdiff
path: root/src-3.0
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-05-23 06:31:52 +0000
committerbjorn <bjorn@bringert.net>2008-05-23 06:31:52 +0000
commit003278e52d758fa5a11ebb2f82b30499d11fcbe7 (patch)
tree122122405cfcb5d395e25b5b5256fbc2f2107fff /src-3.0
parent954740933af1f60099bdc5c180bcc1f240eb614c (diff)
Added GF.System.Readline and related modules back into src-3.0.
Diffstat (limited to 'src-3.0')
-rw-r--r--src-3.0/GF/System/NoReadline.hs27
-rw-r--r--src-3.0/GF/System/Readline.hs27
-rw-r--r--src-3.0/GF/System/UseReadline.hs25
3 files changed, 79 insertions, 0 deletions
diff --git a/src-3.0/GF/System/NoReadline.hs b/src-3.0/GF/System/NoReadline.hs
new file mode 100644
index 000000000..138ba4e28
--- /dev/null
+++ b/src-3.0/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-3.0/GF/System/Readline.hs b/src-3.0/GF/System/Readline.hs
new file mode 100644
index 000000000..c12493f98
--- /dev/null
+++ b/src-3.0/GF/System/Readline.hs
@@ -0,0 +1,27 @@
+{-# OPTIONS -cpp #-}
+
+----------------------------------------------------------------------
+-- |
+-- Module : GF.System.Readline
+-- Maintainer : BB
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/05/10 15:04:01 $
+-- > CVS $Author: bringert $
+-- > CVS $Revision: 1.2 $
+--
+-- Uses the right readline library to read user input.
+-----------------------------------------------------------------------------
+
+module GF.System.Readline (fetchCommand) where
+
+#ifdef USE_READLINE
+
+import GF.System.UseReadline (fetchCommand)
+
+#else
+
+import GF.System.NoReadline (fetchCommand)
+
+#endif
diff --git a/src-3.0/GF/System/UseReadline.hs b/src-3.0/GF/System/UseReadline.hs
new file mode 100644
index 000000000..c84b9d7f4
--- /dev/null
+++ b/src-3.0/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