1
0
forked from GitHub/gf-core

Added option to disable readline.

This commit is contained in:
bringert
2005-05-10 13:55:01 +00:00
parent 41657fed46
commit 2fa6b60d04
5 changed files with 94 additions and 16 deletions

View File

@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
-- > CVS $Date: 2005/04/21 16:46:14 $
-- > CVS $Date: 2005/05/10 14:55:01 $
-- > CVS $Author: bringert $
-- > CVS $Revision: 1.7 $
-- > CVS $Revision: 1.8 $
--
-- architecture\/compiler dependent definitions for unix\/hbc
-----------------------------------------------------------------------------
@@ -21,7 +21,8 @@ import System.Random
import System.CPUTime
import Control.Monad (filterM)
import System.Directory
import System.Console.Readline
import GF.System.Readline (fetchCommand)
---- import qualified UnicodeF as U --(fudlogueWrite)
@@ -44,14 +45,6 @@ prCPU cpu = do
welcomeArch :: String
welcomeArch = "This is the system compiled with ghc."
fetchCommand :: String -> IO (String)
fetchCommand s = do
res <- readline s
case res of
Nothing -> return "q"
Just s -> do addHistory s
return s
-- | selects the one with the later modification time of two
selectLater :: FilePath -> FilePath -> IO FilePath
selectLater x y = do

51
src/GF/System/Readline.hs Normal file
View File

@@ -0,0 +1,51 @@
{-# OPTIONS -cpp #-}
----------------------------------------------------------------------
-- |
-- Module : GF.System.Readline
-- Maintainer : BB
-- Stability : (stable)
-- Portability : (portable)
--
-- > CVS $Date: 2005/05/10 14:55:01 $
-- > CVS $Author: bringert $
-- > CVS $Revision: 1.1 $
--
-- Uses the right readline library to read user input.
-----------------------------------------------------------------------------
module GF.System.Readline (fetchCommand) where
#ifdef USE_READLINE
import System.Console.Readline (readline, addHistory)
#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
#endif

View File

@@ -5,7 +5,6 @@ GHMAKE=$(GHC) --make
GHCXMAKE=ghcxmake
GHCFLAGS= -package util -fglasgow-exts $(CPPFLAGS) $(LDFLAGS)
GHCOPTFLAGS=-O2
GHCWINFLAGS=-package readline
GHCFUDFLAG=
JAVAFLAGS=-target 1.4 -source 1.4
@@ -20,6 +19,10 @@ BIN_DIST_DIR=$(DIST_DIR)-$(host)
SNAPSHOT_DIR=GF-$(shell date +%Y%m%d)
ifeq ($(READLINE),readline)
GHCFLAGS += -package readline -DUSE_READLINE
endif
GF_EXE=gf$(EXEEXT)
GF_EXE_TMP=gf-bin$(EXEEXT)
GF_DOC_EXE=gfdoc$(EXEEXT)
@@ -98,7 +101,8 @@ javac:
jar: javac
cd JavaGUI; $(JAR) -cmf manifest.txt gf-java.jar *.class
showflags:
@echo $(GHCFLAGS)
# added by peb:
tracing: GHCFLAGS += -DTRACING
@@ -108,8 +112,8 @@ ghci-trace: GHCFLAGS += -DTRACING
ghci-trace: ghci
touch-files:
rm -f GF/System/Tracing.{hi,o}
touch GF/System/Tracing.hs
rm -f GF/System/Tracing.{hi,o} GF/System/Readline.{hi,o}
touch GF/System/Tracing.hs GF/System/Readline.hs
# profiling
prof: GHCOPTFLAGS += -prof -auto-all -auto-dicts

View File

@@ -21,6 +21,8 @@ INSTALL = @INSTALL@
GHC = @GHC@
GHCI = @GHCI@
READLINE = @READLINE@
ENABLE_JAVA = @ENABLE_JAVA@
JAVAC = @JAVAC@

View File

@@ -4,7 +4,7 @@ AC_INIT([GF],[2.2],[aarne@cs.chalmers.se],[GF])
AC_PREREQ(2.53)
AC_REVISION($Revision: 1.13 $)
AC_REVISION($Revision: 1.14 $)
AC_CONFIG_FILES([config.mk jgf])
@@ -41,6 +41,34 @@ GHCI=$(dirname $GHC)/ghci
AC_SUBST(GHC)
AC_SUBST(GHCI)
dnl ***********************************************
dnl readline
dnl ***********************************************
AC_ARG_WITH(readline,
AC_HELP_STRING([--with-readline=<readline alternative>],
[Select which readline implementation to use.
Available alternatives are: 'readline' (GNU readline),
'no' (don't use readline)
(default = readline)]),
[if test "$withval" = "yes"; then
READLINE="readline"
else
READLINE="$withval"
fi],
[READLINE="readline"])
case $READLINE in
readline)
;;
no)
;;
*)
AC_MSG_ERROR([Bad value for --with-readline: $READLINE])
;;
esac
AC_SUBST(READLINE)
dnl ***********************************************
dnl java stuff