NAME
setupterm
,
set_curterm
, del_curterm
,
termname
, longname
,
tigetflag
, tigetnum
,
tigetstr
, tparm
,
tputs
, putp
,
ti_setupterm
, ti_getflag
,
ti_getnum
, ti_getstr
,
tiparm
, ti_tiparm
,
ti_puts
, ti_putp
—
terminal independent operation
routines
LIBRARY
library “libterminfo”
SYNOPSIS
#include
<term.h>
char PC;
short ospeed;
TERMINAL *cur_term;
int
setupterm
(const
char *name, int
fildes, int
*errret);
TERMINAL *
set_curterm
(TERMINAL
*nterm);
int
del_curterm
(TERMINAL
*oterm);
char *
termname
(void);
char *
longname
(void);
int
tigetnum
(const
char *id);
int
tigetflag
(const
char *id);
char *
tigetstr
(const
char *id);
char *
tparm
(const
char *cm, long p1,
long p2,
long p3,
long p4,
long p5,
long p6,
long p7,
long p8,
long p9);
int
tputs
(const
char *cp, int
affcnt, int
(*outc)(int));
int
putp
(const
char *cp);
int
ti_setupterm
(TERMINAL
**, const char
*name, int fildes,
int *error);
int
ti_getflag
(const
TERMINAL *, const char
*id);
int
ti_getnum
(const
TERMINAL *, const char
*id);
const char *
ti_getstr
(const
TERMINAL *, const char
*id);
char *
tiparm
(const
char *cm, ...);
char *
ti_tiparm
(TERMINAL
*, const char *cm,
...);
int
ti_puts
(const
TERMINAL *term, const
char *str, int
affcnt, int (*outc)(int
ch, void *arg), void
*arg);
int
ti_putp
(const
TERMINAL *term, const
char *str);
DESCRIPTION
These functions extract and use capabilities from a terminal capability database, usually /usr/share/misc/terminfo, the format of which is described in terminfo(5). These are low level routines; see curses(3) for a higher level package.The
setupterm
()
function extracts the entry for terminal name and then
calls set_curterm
() to set
cur_term to it. If name is
NULL
then it is replaced by the environment variable
TERM
. The setupterm
()
function returns 0 on success and -1 on error. errret
is set to -1 if the terminfo
database could not be
opened, 0 if the terminal could not be found in the database, and 1 if all
went well.
The
set_curterm
()
function sets the variable cur_term to
nterm and makes all of the
terminfo
boolean, numeric and string variables use
the values from nterm. The global variables
PC and ospeed are then set. The
old value of cur_term is returned. The
del_curterm
()
function frees space pointed to by oterm.
The
termname
()
function returns the name of cur_term. The
longname
()
function returns the description of cur_term.
The
tigetflag
()
function gets the boolean value of capability id,
returning -1 if it is not a valid capability. The
tigetnum
()
function gets the numeric value of the capability id,
returning -2 if it is not a valid capability. The
tigetstr
()
function returns the string value of the capability
id, returning (char *)-1 if it is not a valid
capability.
The
tparm
()
function returns a string decoded from cm with the
parameters p1 ... p9 applied.
Some capabilities require string parameters and only platforms that can fit
a char * pointer inside a long
can use them. For platforms which don't support this,
NULL
is returned and errno is
set to ENOTSUPP
. The string encoding and parameter
application is described in
terminfo(5).
The
tputs
()
function applies padding information to the string cp;
affcnt gives the number of lines affected by the
operation, or 1 if this is not applicable; outc is a
function which is called by each character in turn. The external variable
ospeed controls how many padding characters are sent
in relation to the terminal speed. The
putp
()
function calls tputs(str, 1, putchar). The output from
putp
() always goes to stdout.
NetBSD Extensions To Terminfo
The
tiparm
()
function allows variadic parameters instead of 9 fixed longs. Numeric
parameters must be passed as int. String parameters
must be passed as char * and works on all platforms,
unlike tparm
().
The
ti_*
()
functions correspond to the standard
t*
()
functions but take an additional TERMINAL * parameter
so that the terminal can be specified instead of assuming
cur_term. These functions use private variables to the
TERMINAL instead of the global variables, such as
PC and ospeed.
SEE ALSO
AUTHORS
Roy Marples <roy@NetBSD.org>