diff options
| author | bringert <unknown> | 2005-05-10 14:04:01 +0000 |
|---|---|---|
| committer | bringert <unknown> | 2005-05-10 14:04:01 +0000 |
| commit | 63d3bb58ee82f9d3240ccb4b0559a995417c085a (patch) | |
| tree | 356b73d98d40b45ab1fe73134ea36bd4b476581b /src/GF | |
| parent | 2fa6b60d0449b49fd9eaa75c72d07f10d45c9837 (diff) | |
Made conditional compilation of readline stuff cleaner
Diffstat (limited to 'src/GF')
| -rw-r--r-- | src/GF/System/NoReadline.hs | 27 | ||||
| -rw-r--r-- | src/GF/System/Readline.hs | 32 | ||||
| -rw-r--r-- | src/GF/System/UseReadline.hs | 25 |
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 |
