| TERMCAP(3) | Library Functions Manual | TERMCAP(3) |
tgetent, tgetnum,
tgetflag, tgetstr,
tgoto — terminal independent
operation routines
Termcap Access Library (libtermcap, -ltermcap)
#include
<termcap.h>
char PC;
char *BC;
char *UP;
int
tgetent(char
*bp, const char
*name);
int
tgetnum(const
char *id);
int
tgetflag(const
char *id);
char *
tgetstr(const
char *id, char
**area);
char *
tgoto(const
char *cm, int
destcol, int
destline);
These functions extract and use capabilities from a terminal capability database. They exist as wrappers around equivalent terminfo(3) functions, which new code should use. These are low level routines; see curses(3) for a higher level package.
The
tgetent()
function calls
setupterm()
and configures PC, UP and
BC. Only PC is actually used
internally. The tgetent() function returns -1 if
none of the terminfo data base files could be
opened, 0 if the terminal name given does not match an entry, and 1 if all
goes well. The bp argument is not used.
The
tgetnum()
function gets the numeric value of the capability id,
returning -1 if it is not given for the terminal. The
tgetflag()
function returns 1 if the specified capability is present in the terminal's
entry, 0 if it is not. The
tgetstr()
function returns the string value of the capability
id. This is a
terminfo(5) string and not a
termcap string; as such it should only be processed
by tgoto(). The tgetstr()
function returns NULL if the capability was not
found. The area argument is unused.
The
tgoto()
function returns a cursor addressing string decoded from
cm to go to column destcol in
line destline, or NULL on
error conditions such as out of memory. Please note that
tgoto() can return an incomplete value on a
malformed input sequence. Historically tgoto() used
to return “OOPS” on those conditions, so newer programs should
now be checking the return value.
termcap first appeared in 4.0BSD.
NetBSD 1.5 introduced some
termcap t_*() extensions
which were removed in NetBSD 6.0 when
terminfo(3) was
introduced.
Roy Marples <roy@NetBSD.org>
| March 14, 2011 | NetBSD 11.0 |