forked from GitHub/gf-core
conditional support for haskeline, readline and editline
This commit is contained in:
32
GF.cabal
32
GF.cabal
@@ -543,10 +543,18 @@ data-files:
|
||||
lib/resource/thai/VerbTha.gf
|
||||
lib/LICENSE
|
||||
|
||||
flag haskeline
|
||||
Description: Enable Haskeline in the shell
|
||||
Default: True
|
||||
|
||||
flag readline
|
||||
Description: Enable Readline in the shell
|
||||
Default: True
|
||||
|
||||
flag editline
|
||||
Description: Enable Editline in the shell
|
||||
Default: True
|
||||
|
||||
flag interrupt
|
||||
Description: Enable Ctrl+Break in the shell
|
||||
Default: True
|
||||
@@ -700,14 +708,24 @@ executable gf
|
||||
PGF.Binary
|
||||
GFC
|
||||
GFI
|
||||
|
||||
if flag(readline)
|
||||
build-depends: readline
|
||||
ghc-options: -DUSE_READLINE
|
||||
other-modules: GF.System.UseReadline
|
||||
|
||||
if flag(haskeline)
|
||||
build-depends: haskeline
|
||||
cpp-options: -DUSE_HASKELINE
|
||||
other-modules: GF.System.UseHaskeline
|
||||
else
|
||||
other-modules: GF.System.NoReadline
|
||||
|
||||
if flag(readline)
|
||||
build-depends: readline
|
||||
cpp-options: -DUSE_READLINE
|
||||
other-modules: GF.System.UseReadline
|
||||
else
|
||||
if flag(editline)
|
||||
build-depends: editline
|
||||
cpp-options: -DUSE_EDITLINE
|
||||
other-modules: GF.System.UseEditline
|
||||
else
|
||||
other-modules: GF.System.NoReadline
|
||||
|
||||
if flag(interrupt)
|
||||
cpp-options: -DUSE_INTERRUPT
|
||||
other-modules: GF.System.UseSignal
|
||||
|
||||
@@ -16,10 +16,18 @@
|
||||
|
||||
module GF.System.Readline (fetchCommand, setCompletionFunction, filenameCompletionFunction) where
|
||||
|
||||
#ifdef USE_READLINE
|
||||
#ifdef USE_HASKELINE
|
||||
|
||||
import GF.System.UseHaskeline
|
||||
|
||||
#elif USE_READLINE
|
||||
|
||||
import GF.System.UseReadline
|
||||
|
||||
#elif USE_EDITLINE
|
||||
|
||||
import GF.System.UseEditline
|
||||
|
||||
#else
|
||||
|
||||
import GF.System.NoReadline
|
||||
|
||||
Reference in New Issue
Block a user