Shellac-compatline-0.9: src/System/Console/Shell/Backend/Compatline.hs
{-
Copyright 2008, Robert Dockins.
-}
{- | This module implements a Shellac backend based either on
GNU readline or on libedit. The choice between these two
packages is made at compile time, based on avaliability. In the case that
both are avaliable, libedit is chosen.
Beware that while the code for this Shellac binding is licensed under a BSD3
license, GNU readline itself is licensed under the GPL. This means that your
project needs to be GPL compatible to use this backend! Otherwise you may encounter
licensing issues.
If your project is not GPL compatabile you should instead use the Shellac-editline
library, as editline is licensed under a BSD3 license.
-}
module System.Console.Shell.Backend.Compatline where
import System.Console.Shell.Backend
#ifdef USE_EDITLINE
import System.Console.Shell.Backend.Editline
#endif
#ifdef USE_READLINE
import System.Console.Shell.Backend.Readline
#endif
data CompatlineConfig
= UsingEditline
| UsingReadline
deriving Show
-- | A \"readline-alike\" shell backend.
compatlineBackend :: ShellBackend ()
-- | A flag describing the compile-time
-- configuration of this module.
compatlineConfig :: CompatlineConfig
#ifdef USE_EDITLINE
compatlineBackend = editlineBackend
compatlineConfig = UsingEditline
#endif
#ifdef USE_READLINE
compatlineBackend = readlineBackend
compatlineConfig = UsingReadline
#endif