mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Made conditional compilation of readline stuff cleaner
This commit is contained in:
27
src/GF/System/NoReadline.hs
Normal file
27
src/GF/System/NoReadline.hs
Normal 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
|
||||
@@ -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
|
||||
|
||||
25
src/GF/System/UseReadline.hs
Normal file
25
src/GF/System/UseReadline.hs
Normal 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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user