|
System.Posix.Terminal | Portability | non-portable (requires POSIX) | Stability | provisional | Maintainer | libraries@haskell.org |
|
|
|
|
|
Description |
POSIX Terminal support
|
|
Synopsis |
|
|
|
|
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.
|
|
Pseudoterminal operations
|
|
openPseudoTerminal :: IO (Fd, Fd) |
openPseudoTerminal creates a pseudoterminal (pty) pair, and
returns the newly created pair as a (master, slave) tuple.
|
|
getSlaveTerminalName :: Fd -> IO FilePath |
getSlaveTerminalName calls ptsname to obtain the name of the
slave terminal associated with a pseudoterminal pair. The file
descriptor to pass in must be that of the master.
|
|
Produced by Haddock version 0.8 |