module System.Console.Haskeline.Backend where

import System.Console.Haskeline.Term

#ifdef MINGW
import System.Console.Haskeline.Backend.Win32 as Win32
#else
#ifdef TERMINFO
import System.Console.Haskeline.Backend.Terminfo as Terminfo
#endif
import System.Console.Haskeline.Backend.DumbTerm as DumbTerm
#endif

myRunTerm :: IO RunTerm

#ifdef MINGW
myRunTerm = win32Term
#else
#ifndef TERMINFO
myRunTerm = runDumbTerm
#else
myRunTerm = do
    mRun <- runTerminfoDraw
    case mRun of 
        Nothing -> runDumbTerm
        Just run -> return run
#endif
#endif