diff --git a/GF.cabal b/GF.cabal index 207c3944f..d57f7c84c 100644 --- a/GF.cabal +++ b/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 diff --git a/src/GF/System/Readline.hs b/src/GF/System/Readline.hs index db122c3e2..ee38cdc0b 100644 --- a/src/GF/System/Readline.hs +++ b/src/GF/System/Readline.hs @@ -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