Made conditional compilation of readline stuff cleaner

This commit is contained in:
bringert
2005-05-10 14:04:01 +00:00
parent 2fa6b60d04
commit 63d3bb58ee
4 changed files with 58 additions and 30 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -112,8 +112,8 @@ ghci-trace: GHCFLAGS += -DTRACING
ghci-trace: ghci
touch-files:
rm -f GF/System/Tracing.{hi,o} GF/System/Readline.{hi,o}
touch GF/System/Tracing.hs GF/System/Readline.hs
rm -f GF/System/Tracing.{hi,o}
touch GF/System/Tracing.hs
# profiling
prof: GHCOPTFLAGS += -prof -auto-all -auto-dicts