mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
Added GF.System.Readline and related modules back into src-3.0.
This commit is contained in:
27
src-3.0/GF/System/NoReadline.hs
Normal file
27
src-3.0/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
|
||||||
27
src-3.0/GF/System/Readline.hs
Normal file
27
src-3.0/GF/System/Readline.hs
Normal file
@@ -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
|
||||||
25
src-3.0/GF/System/UseReadline.hs
Normal file
25
src-3.0/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
|
||||||
Reference in New Issue
Block a user