| terminfo-0.3.1: Haskell bindings to the terminfo library. | Source code | Contents | Index

System.Console.Terminfo.Base

Portability | portable (FFI)
Stability | experimental
Maintainer | judah.jacobson@gmail.com

Contents

Initialization
Capabilities
Output
  Monoid functions

Description
This module provides a low-level interface to the C functions of the terminfo library. NOTE: Since this library is built on top of the curses interface, it is not thread-safe.
Synopsis

data Terminal
setupTerm :: String -> IO Terminal
setupTermFromEnv :: IO Terminal
data SetupTermError
data Capability a
getCapability :: Terminal -> Capability a -> Maybe a
tiGetFlag :: String -> Capability Bool
tiGuardFlag :: String -> Capability ()
tiGetNum :: String -> Capability Int
tiGetStr :: String -> Capability String
data TermOutput
runTermOutput :: Terminal -> TermOutput -> IO ()
hRunTermOutput :: Handle -> Terminal -> TermOutput -> IO ()
termText :: String -> TermOutput
tiGetOutput :: String -> Capability ([Int] -> LinesAffected -> TermOutput)
type LinesAffected = Int
tiGetOutput1 :: OutputCap f => String -> Capability f
class OutputCap f
Monoid (mempty, mappend, mconcat)
(<#>) :: Monoid m => m -> m -> m

Initialization

data Terminal | Source

setupTerm :: String -> IO Terminal | Source

Initialize the terminfo library to the given terminal entry. Throws a `SetupTermError` if the terminfo database could not be read.

setupTermFromEnv :: IO Terminal | Source

Initialize the terminfo library, using the `TERM` environmental variable. If `TERM` is not set, we use the generic, minimal entry `dumb`. Throws a `SetupTermError` if the terminfo database could not be read.

data SetupTermError | Source

Instances

Show SetupTermError
Typeable SetupTermError
Exception SetupTermError

Capabilities

data Capability a | Source

A feature or operation which a `Terminal` may define.
Instances

Monad Capability
Functor Capability
MonadPlus Capability

getCapability :: Terminal -> Capability a -> Maybe a | Source

tiGetFlag :: String -> Capability Bool | Source

Look up a boolean capability in the terminfo database. Unlike `tiGuardFlag`, this capability never fails; it returns `False` if the capability is absent or set to false, and returns `True` otherwise.

tiGuardFlag :: String -> Capability () | Source

Look up a boolean capability in the terminfo database, and fail if it's not defined.

tiGetNum :: String -> Capability Int | Source

Look up a numeric capability in the terminfo database.

tiGetStr :: String -> Capability String | Source

Look up a string capability in the terminfo database. Note: Do not use this function for terminal output; use `tiGetOutput` instead.
Output

data TermOutput | Source

An action which sends output to the terminal. That output may mix plain text with control characters and escape sequences, along with delays (called "padding") required by some older terminals.
Instances

Monoid TermOutput
OutputCap TermOutput

runTermOutput :: Terminal -> TermOutput -> IO () | Source

Write the terminal output to the standard output device.

hRunTermOutput :: Handle -> Terminal -> TermOutput -> IO () | Source

Write the terminal output to the terminal or file managed by the given `Handle`.

termText :: String -> TermOutput | Source

Output plain text containing no control characters or escape sequences.

tiGetOutput :: String -> Capability ([Int] -> LinesAffected -> TermOutput) | Source

Look up an output capability in the terminfo database.

type LinesAffected = Int | Source

A parameter to specify the number of lines affected. Some capabilities (e.g., `clear` and `dch1`) use this parameter on some terminals to compute variable-length padding.

tiGetOutput1 :: OutputCap f => String -> Capability f | Source

Look up an output capability which takes a fixed number of parameters (for example, `Int -> Int -> TermOutput`). For capabilities which may contain variable-length padding, use `tiGetOutput` instead.

class OutputCap f | Source

A type class to encapsulate capabilities which take in zero or more parameters.
Instances

OutputCap TermOutput
(Enum a, OutputCap f) => OutputCap (a -> f)

Monoid functions
Monoid (mempty, mappend, mconcat)

(<#>) :: Monoid m => m -> m -> m | Source

An operator version of `mappend`.
Produced by Haddock version 2.4.2