| Copyright | (c) The University of Glasgow 2002 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | provisional |
| Portability | non-portable (requires POSIX) |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
System.Posix.Terminal.ByteString
Contents
Description
POSIX Terminal support
- data TerminalAttributes
- getTerminalAttributes :: Fd -> IO TerminalAttributes
- data TerminalState
- 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
- 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
- inputSpeed :: TerminalAttributes -> BaudRate
- withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
- outputSpeed :: TerminalAttributes -> BaudRate
- withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
- sendBreak :: Fd -> Int -> IO ()
- drainOutput :: Fd -> IO ()
- data QueueSelector
- discardData :: Fd -> QueueSelector -> IO ()
- data FlowAction
- controlFlow :: Fd -> FlowAction -> IO ()
- getTerminalProcessGroupID :: Fd -> IO ProcessGroupID
- setTerminalProcessGroupID :: Fd -> ProcessGroupID -> IO ()
- queryTerminal :: Fd -> IO Bool
- getTerminalName :: Fd -> IO RawFilePath
- getControllingTerminalName :: IO RawFilePath
- openPseudoTerminal :: IO (Fd, Fd)
- getSlaveTerminalName :: Fd -> IO RawFilePath
Terminal support
Terminal attributes
data TerminalAttributes Source
getTerminalAttributes :: Fd -> IO TerminalAttributes Source
getTerminalAttributes fd calls tcgetattr to obtain
the TerminalAttributes associated with Fd fd.
data TerminalState Source
Constructors
| Immediately | |
| WhenDrained | |
| WhenFlushed |
setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO () Source
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 Source
Constructors
terminalMode :: TerminalMode -> TerminalAttributes -> Bool Source
data ControlCharacter Source
withCC :: TerminalAttributes -> (ControlCharacter, Char) -> TerminalAttributes Source
inputTime :: TerminalAttributes -> Int Source
minInput :: TerminalAttributes -> Int Source
Terminal operations
sendBreak :: Fd -> Int -> IO () Source
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 () Source
drainOutput fd calls tcdrain to block until all output
written to Fd fd has been transmitted.
data QueueSelector Source
Constructors
| InputQueue | |
| OutputQueue | |
| BothQueues |
discardData :: Fd -> QueueSelector -> IO () Source
discardData fd queues calls tcflush to discard
pending input and/or output for Fd fd,
as indicated by the QueueSelector queues.
data FlowAction Source
Constructors
| SuspendOutput | TCOOFF |
| RestartOutput | TCOON |
| TransmitStop | TCIOFF |
| TransmitStart | TCION |
controlFlow :: Fd -> FlowAction -> IO () Source
controlFlow fd action calls tcflow to control the
flow of data on Fd fd, as indicated by
action.
Process groups
getTerminalProcessGroupID :: Fd -> IO ProcessGroupID Source
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 () Source
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 Source
queryTerminal fd calls isatty to determine whether or
not Fd fd is associated with a terminal.
getTerminalName :: Fd -> IO RawFilePath Source
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 RawFilePath Source
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) Source
openPseudoTerminal creates a pseudoterminal (pty) pair, and
returns the newly created pair as a (master, slave) tuple.
getSlaveTerminalName :: Fd -> IO RawFilePath Source
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.