summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbringert <unknown>2005-05-10 13:55:01 +0000
committerbringert <unknown>2005-05-10 13:55:01 +0000
commit2fa6b60d0449b49fd9eaa75c72d07f10d45c9837 (patch)
tree31c7061458cee4be4243bba5f39145f66ab622de /src
parent41657fed460ddc959db9d2a4c6000c77b5c82f3c (diff)
Added option to disable readline.
Diffstat (limited to 'src')
-rw-r--r--src/GF/System/Arch.hs15
-rw-r--r--src/GF/System/Readline.hs51
-rw-r--r--src/Makefile12
-rw-r--r--src/config.mk.in2
-rw-r--r--src/configure.ac30
5 files changed, 94 insertions, 16 deletions
diff --git a/src/GF/System/Arch.hs b/src/GF/System/Arch.hs
index d9f3e855c..c0dac3644 100644
--- a/src/GF/System/Arch.hs
+++ b/src/GF/System/Arch.hs
@@ -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
diff --git a/src/GF/System/Readline.hs b/src/GF/System/Readline.hs
new file mode 100644
index 000000000..588b277d0
--- /dev/null
+++ b/src/GF/System/Readline.hs
@@ -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
diff --git a/src/Makefile b/src/Makefile
index a0ccaa4d7..5efe4753e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -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
diff --git a/src/config.mk.in b/src/config.mk.in
index 860e5bf0f..13395ff54 100644
--- a/src/config.mk.in
+++ b/src/config.mk.in
@@ -21,6 +21,8 @@ INSTALL = @INSTALL@
GHC = @GHC@
GHCI = @GHCI@
+READLINE = @READLINE@
+
ENABLE_JAVA = @ENABLE_JAVA@
JAVAC = @JAVAC@
diff --git a/src/configure.ac b/src/configure.ac
index 8991543ba..00995d24a 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -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