(Darren Moffat supplied the initial version of the Readline module.)
The Readline module is a straightforward interface to the GNU Readline library. As such, you will need to look at the GNU documentation (and have a libreadline.a file around somewhere…)
The main function you'll use is:
readline :: String{-the prompt-} -> IO (Maybe String) |
If you want to mess around with Full Readline G(l)ory, we also provide:
type KeyCode = Char type CallbackFunction = (Int -> -- Numeric Argument KeyCode -> -- KeyCode of pressed Key IO Int) -- What's this? initialize :: IO () addHistory :: String -> IO () bindKey :: KeyCode -> CallbackFunction -> IO () addDefun :: String -> CallbackFunction -> Maybe KeyCode -> IO () getReadlineName :: IO String setReadlineName :: String -> IO () getLineBuffer :: IO String setLineBuffer :: String -> IO () getPoint :: IO Int setPoint :: Int -> IO () getEnd :: IO Int setEnd :: Int -> IO () getMark :: IO Int setMark :: Int -> IO () setDone :: Bool -> IO () setPendingInput :: KeyCode -> IO () getPrompt :: IO String getTerminalName :: IO String inStream :: Handle outStream :: Handle |