| Copyright | (C) 2016-2017 Ryan Scott |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Ryan Scott |
| Stability | Provisional |
| Portability | Portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
System.IO.Echo
Description
Exports functions that handle whether or not terminal input is handled in a way that should be portable across different platforms and consoles.
Synopsis
- withoutInputEcho :: IO a -> IO a
- bracketInputEcho :: IO a -> IO a
- getInputEchoState :: IO EchoState
- setInputEchoState :: EchoState -> IO ()
- data EchoState
- echoOff :: EchoState
- echoOn :: EchoState
- getInputEcho :: IO Bool
- setInputEcho :: Bool -> IO ()
Public interface
withoutInputEcho :: IO a -> IO a #
Perform a computation with the terminal's input echoing disabled. Before
running the computation, the terminal's input EchoState is saved, and the
saved EchoState is restored after the computation finishes.
withoutInputEcho action =bracketInputEcho(setInputEchoStateechoOff>> action)
bracketInputEcho :: IO a -> IO a #
Save the terminal's current input EchoState, perform a computation,
restore the saved EchoState, and then return the result of the
computation.
bracketInputEcho action =bracketgetInputEchoStatesetInputEchoState(const action)
getInputEchoState :: IO EchoState #
Return the terminal's current input EchoState.
setInputEchoState :: EchoState -> IO () #
Set the terminal's input EchoState.
A representation of the terminal input's current echoing state. Example
values include echoOff and echoOn.
Instances
| Eq EchoState # | |
| Ord EchoState # | |
| Show EchoState # | |
Alternative interface
getInputEcho :: IO Bool #
Return whether the terminal's echoing is on (True) or off (False).
Note that while this works on MinTTY, it is not as efficient as
getInputEchoState, as it involves a somewhat expensive substring
computation.