diff options
| author | bjorn <bjorn@bringert.net> | 2008-05-23 06:31:52 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-05-23 06:31:52 +0000 |
| commit | 003278e52d758fa5a11ebb2f82b30499d11fcbe7 (patch) | |
| tree | 122122405cfcb5d395e25b5b5256fbc2f2107fff /src-3.0 | |
| parent | 954740933af1f60099bdc5c180bcc1f240eb614c (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.hs | 27 | ||||
| -rw-r--r-- | src-3.0/GF/System/Readline.hs | 27 | ||||
| -rw-r--r-- | src-3.0/GF/System/UseReadline.hs | 25 |
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 |
