| Haskell Hierarchical Libraries (unix package) | Source code | Contents | Index
System.Posix.Terminal |
Portability | non-portable (requires POSIX)
Stability | provisional
Maintainer | libraries@haskell.org
Contents
Terminal support Terminal attributes Terminal operations Process groups Testing a file descriptor
Description
POSIX Terminal support
Synopsis
data TerminalAttributes
getTerminalAttributes :: Fd -> IO TerminalAttributes
data TerminalState
= Immediately
| WhenDrained
| WhenFlushed
setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO ()
data TerminalMode
= InterruptOnBreak
| MapCRtoLF
| IgnoreBreak
| IgnoreCR
| IgnoreParityErrors
| MapLFtoCR
| CheckParity
| StripHighBit
| StartStopInput
| StartStopOutput
| MarkParityErrors
| ProcessOutput
| LocalMode
| ReadEnable
| TwoStopBits
| HangupOnClose
| EnableParity
| OddParity
| EnableEcho
| EchoErase
| EchoKill
| EchoLF
| ProcessInput
| ExtendedFunctions
| KeyboardInterrupts
| NoFlushOnInterrupt
| BackgroundWriteInterrupt
withoutMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
withMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
terminalMode :: TerminalMode -> TerminalAttributes -> Bool
bitsPerByte :: TerminalAttributes -> Int
withBits :: TerminalAttributes -> Int -> TerminalAttributes
data ControlCharacter
= EndOfFile
| EndOfLine
| Erase
| Interrupt
| Kill
| Quit
| Start
| Stop
| Suspend
controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char
withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes
withoutCC :: TerminalAttributes -> ControlCharacter -> TerminalAttributes
inputTime :: TerminalAttributes -> Int
withTime :: TerminalAttributes -> Int -> TerminalAttributes
minInput :: TerminalAttributes -> Int
withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
data BaudRate
= B0
| B50
| B75
| B110
| B134
| B150
| B200
| B300
| B600
| B1200
| B1800
| B2400
| B4800
| B9600
| B19200
| B38400
inputSpeed :: TerminalAttributes -> BaudRate
withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
outputSpeed :: TerminalAttributes -> BaudRate
withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
sendBreak :: Fd -> Int -> IO ()
drainOutput :: Fd -> IO ()
data QueueSelector
= InputQueue
| OutputQueue
| BothQueues
discardData :: Fd -> QueueSelector -> IO ()
data FlowAction
= SuspendOutput
| RestartOutput
| TransmitStop
| TransmitStart
controlFlow :: Fd -> FlowAction -> IO ()
getTerminalProcessGroupID :: Fd -> IO ProcessGroupID
setTerminalProcessGroupID :: Fd -> ProcessGroupID -> IO ()
queryTerminal :: Fd -> IO Bool
getTerminalName :: Fd -> IO FilePath
getControllingTerminalName :: IO FilePath
Terminal support
Terminal attributes
data TerminalAttributes
getTerminalAttributes :: Fd -> IO TerminalAttributes
`getTerminalAttributes fd` calls `tcgetattr` to obtain the `TerminalAttributes` associated with `Fd` `fd`.
data TerminalState
Constructors
Immediately |
WhenDrained |
WhenFlushed |
setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO ()
`setTerminalAttributes fd attr ts` calls `tcsetattr` to change the `TerminalAttributes` associated with `Fd` `fd` to `attr`, when the terminal is in the state indicated by `ts`.
data TerminalMode
Constructors
InterruptOnBreak |
MapCRtoLF |
IgnoreBreak |
IgnoreCR |
IgnoreParityErrors |
MapLFtoCR |
CheckParity |
StripHighBit |
StartStopInput |
StartStopOutput |
MarkParityErrors |
ProcessOutput |
LocalMode |
ReadEnable |
TwoStopBits |
HangupOnClose |
EnableParity |
OddParity |
EnableEcho |
EchoErase |
EchoKill |
EchoLF |
ProcessInput |
ExtendedFunctions |
KeyboardInterrupts |
NoFlushOnInterrupt |
BackgroundWriteInterrupt |
withoutMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
withMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
terminalMode :: TerminalMode -> TerminalAttributes -> Bool
bitsPerByte :: TerminalAttributes -> Int
withBits :: TerminalAttributes -> Int -> TerminalAttributes
data ControlCharacter
Constructors
EndOfFile |
EndOfLine |
Erase |
Interrupt |
Kill |
Quit |
Start |
Stop |
Suspend |
controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char
withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes
withoutCC :: TerminalAttributes -> ControlCharacter -> TerminalAttributes
inputTime :: TerminalAttributes -> Int
withTime :: TerminalAttributes -> Int -> TerminalAttributes
minInput :: TerminalAttributes -> Int
withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
data BaudRate
Constructors
B0 |
B50 |
B75 |
B110 |
B134 |
B150 |
B200 |
B300 |
B600 |
B1200 |
B1800 |
B2400 |
B4800 |
B9600 |
B19200 |
B38400 |
inputSpeed :: TerminalAttributes -> BaudRate
withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
outputSpeed :: TerminalAttributes -> BaudRate
withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
Terminal operations
sendBreak :: Fd -> Int -> IO ()
`sendBreak fd duration` calls `tcsendbreak` to transmit a continuous stream of zero-valued bits on `Fd` `fd` for the specified implementation-dependent `duration`.
drainOutput :: Fd -> IO ()
`drainOutput fd` calls `tcdrain` to block until all output written to `Fd` `fd` has been transmitted.
data QueueSelector
Constructors
InputQueue |
OutputQueue |
BothQueues |
discardData :: Fd -> QueueSelector -> IO ()
`discardData fd queues` calls `tcflush` to discard pending input and/or output for `Fd` `fd`, as indicated by the `QueueSelector` `queues`.
data FlowAction
Constructors
SuspendOutput | TCOOFF
RestartOutput | TCOON
TransmitStop | TCIOFF
TransmitStart | TCION
controlFlow :: Fd -> FlowAction -> IO ()
`controlFlow fd action` calls `tcflow` to control the flow of data on `Fd` `fd`, as indicated by `action`.
Process groups
getTerminalProcessGroupID :: Fd -> IO ProcessGroupID
`getTerminalProcessGroupID fd` calls `tcgetpgrp` to obtain the `ProcessGroupID` of the foreground process group associated with the terminal attached to `Fd` `fd`.
setTerminalProcessGroupID :: Fd -> ProcessGroupID -> IO ()
`setTerminalProcessGroupID fd pgid` calls `tcsetpgrp` to set the `ProcessGroupID` of the foreground process group associated with the terminal attached to `Fd` `fd` to `pgid`.
Testing a file descriptor
queryTerminal :: Fd -> IO Bool
`queryTerminal fd` calls `isatty` to determine whether or not `Fd` `fd` is associated with a terminal.
getTerminalName :: Fd -> IO FilePath
`getTerminalName fd` calls `ttyname` to obtain a name associated with the terminal for `Fd` `fd`. If `fd` is associated with a terminal, `getTerminalName` returns the name of the terminal.
getControllingTerminalName :: IO FilePath
`getControllingTerminalName` calls `ctermid` to obtain a name associated with the controlling terminal for the process. If a controlling terminal exists, `getControllingTerminalName` returns the name of the controlling terminal.
Produced by Haddock version 0.8