unix-2.8.3.0: POSIX functionality
Copyright(c) The University of Glasgow 2002
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerlibraries@haskell.org
Stabilityprovisional
Portabilitynon-portable (requires POSIX)
Safe HaskellSafe-Inferred
LanguageHaskell2010

System.Posix.Terminal.PosixString

Description

POSIX Terminal support

Synopsis

Terminal support

Terminal attributes

getTerminalAttributes :: Fd -> IOTerminalAttributesSource#

getTerminalAttributes fd calls tcgetattr to obtain the TerminalAttributes associated with Fdfd.

setTerminalAttributes :: Fd -> TerminalAttributes -> TerminalState -> IO () Source#

setTerminalAttributes fd attr ts calls tcsetattr to change the TerminalAttributes associated with Fdfd to attr, when the terminal is in the state indicated by ts.

dataTerminalModeSource#

Constructors

InterruptOnBreak

BRKINT - Signal interrupt on break

MapCRtoLF

ICRNL - Map CR to NL on input

IgnoreBreak

IGNBRK - Ignore break condition

IgnoreCR

IGNCR - Ignore CR

IgnoreParityErrors

IGNPAR - Ignore characters with parity errors

MapLFtoCR

INLCR - Map NL to CR on input

CheckParity

INPCK - Enable input parity check

StripHighBit

ISTRIP - Strip character

RestartOnAny

IXANY - Enable any character to restart output

StartStopInput

IXOFF - Enable start/stop input control

StartStopOutput

IXON - Enable start/stop output control

MarkParityErrors

PARMRK - Mark parity errors

ProcessOutput

OPOST - Post-process output

MapLFtoCRLF

ONLCR - (XSI) Map NL to CR-NL on output

Since: 2.8.0.0

OutputMapCRtoLF

OCRNL - (XSI) Map CR to NL on output

Since: 2.8.0.0

NoCRAtColumnZero

ONOCR - (XSI) No CR output at column 0

Since: 2.8.0.0

ReturnMeansLF

ONLRET - (XSI) NL performs CR function

Since: 2.8.0.0

TabDelayMask0

TABDLY(TAB0) - (XSI) Select horizontal-tab delays: type 0

Since: 2.8.0.0

TabDelayMask3

TABDLY(TAB3) - (XSI) Select horizontal-tab delays: type 3

Since: 2.8.0.0

LocalMode

CLOCAL - Ignore modem status lines

ReadEnable

CREAD - Enable receiver

TwoStopBits

CSTOPB - Send two stop bits, else one

HangupOnClose

HUPCL - Hang up on last close

EnableParity

PARENB - Parity enable

OddParity

PARODD - Odd parity, else even

EnableEcho

ECHO - Enable echo

EchoErase

ECHOE - Echo erase character as error-correcting backspace

EchoKill

ECHOK - Echo KILL

EchoLF

ECHONL - Echo NL

ProcessInput

ICANON - Canonical input (erase and kill processing)

ExtendedFunctions

IEXTEN - Enable extended input character processing

KeyboardInterrupts

ISIG - Enable signals

NoFlushOnInterrupt

NOFLSH - Disable flush after interrupt or quit

BackgroundWriteInterrupt

TOSTOP - Send SIGTTOU for background output

newtypeBaudRateSource#

Serial line baudrate. The set of supported speeds is system-dependent. Portable use of the provided pattern synonyms that are outside the list mandated by POSIX requires #ifdef guards.

Applications may need to be prepared to encounter speeds not known at compile time, these can be handled generically via the BaudRate constructor. In other words, the provided pattern synonyms are not necessarily a COMPLETE set.

All non-zero pseudo-terminal baud rates are functionally equivalent, and the pty driver may accept any speed within a suitable range. Requested speeds may be rounded up or down to fit into the supported range.

Constructors

BaudRateCSpeed 

Bundled Patterns

patternB0 :: BaudRate

Hang up

patternB50 :: BaudRate

50 baud

patternB75 :: BaudRate

75 baud

patternB110 :: BaudRate

110 baud

patternB134 :: BaudRate
  1. 5 baud
patternB150 :: BaudRate

150 baud

patternB200 :: BaudRate

200 baud

patternB300 :: BaudRate

300 baud

patternB600 :: BaudRate

600 baud

patternB1200 :: BaudRate

1200 baud

patternB1800 :: BaudRate

1800 baud

patternB2400 :: BaudRate

2400 baud

patternB4800 :: BaudRate

4800 baud

patternB9600 :: BaudRate

9600 baud

patternB19200 :: BaudRate

19200 baud

patternB38400 :: BaudRate

38400 baud

patternB57600 :: BaudRate

57600 baud, non-POSIX system-dependent extension

patternB115200 :: BaudRate

115200 baud, non-POSIX system-dependent extension

patternB230400 :: BaudRate

230400 baud, non-POSIX system-dependent extension

patternB460800 :: BaudRate

460800 baud, non-POSIX system-dependent extension

patternB500000 :: BaudRate

500000 baud, non-POSIX system-dependent extension

patternB576000 :: BaudRate

576000 baud, non-POSIX system-dependent extension

patternB921600 :: BaudRate

921600 baud, non-POSIX system-dependent extension

patternB1000000 :: BaudRate

1000000 baud, non-POSIX system-dependent extension

patternB1152000 :: BaudRate

1152000 baud, non-POSIX system-dependent extension

patternB1500000 :: BaudRate

1500000 baud, non-POSIX system-dependent extension

patternB2000000 :: BaudRate

2000000 baud, non-POSIX system-dependent extension

patternB2500000 :: BaudRate

2500000 baud, non-POSIX system-dependent extension

patternB3000000 :: BaudRate

3000000 baud, non-POSIX system-dependent extension

patternB3500000 :: BaudRate

3500000 baud, non-POSIX system-dependent extension

patternB4000000 :: BaudRate

4000000 baud, non-POSIX system-dependent extension

Instances

Instances details
EnumBaudRateSource# 
Instance details

Defined in System.Posix.Terminal.Common

NumBaudRateSource# 
Instance details

Defined in System.Posix.Terminal.Common

RealBaudRateSource# 
Instance details

Defined in System.Posix.Terminal.Common

ShowBaudRateSource# 
Instance details

Defined in System.Posix.Terminal.Common

EqBaudRateSource# 
Instance details

Defined in System.Posix.Terminal.Common

OrdBaudRateSource# 
Instance details

Defined in System.Posix.Terminal.Common

Terminal operations

sendBreak :: Fd -> Int -> IO () Source#

sendBreak fd duration calls tcsendbreak to transmit a continuous stream of zero-valued bits on Fdfd for the specified implementation-dependent duration.

drainOutput :: Fd -> IO () Source#

drainOutput fd calls tcdrain to block until all output written to Fdfd has been transmitted.

Throws IOError ("unsupported operation") if platform does not provide tcdrain(3) (use #if HAVE_TCDRAIN CPP guard to detect availability).

discardData :: Fd -> QueueSelector -> IO () Source#

discardData fd queues calls tcflush to discard pending input and/or output for Fdfd, as indicated by the QueueSelectorqueues.

controlFlow :: Fd -> FlowAction -> IO () Source#

controlFlow fd action calls tcflow to control the flow of data on Fdfd, as indicated by action.

Process groups

getTerminalProcessGroupID :: Fd -> IOProcessGroupIDSource#

getTerminalProcessGroupID fd calls tcgetpgrp to obtain the ProcessGroupID of the foreground process group associated with the terminal attached to Fdfd.

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 Fdfd to pgid.

Testing a file descriptor

queryTerminal :: Fd -> IOBoolSource#

queryTerminal fd calls isatty to determine whether or not Fdfd is associated with a terminal.

getTerminalName :: Fd -> IOPosixPathSource#

getTerminalName fd calls ttyname to obtain a name associated with the terminal for Fdfd. If fd is associated with a terminal, getTerminalName returns the name of the terminal.

getControllingTerminalName :: IOPosixPathSource#

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.

Throws IOError ("unsupported operation") if platform does not provide ctermid(3) (use #if HAVE_CTERMID CPP guard to detect availability).

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 -> IOPosixPathSource#

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.

close