TERMCAP(3)

TERMCAP(3) | Library Functions Manual | TERMCAP(3)

# NAME

`tgetent`, `tgetnum`, `tgetflag`, `tgetstr`, `tgoto` —
terminal independent operation routines

# LIBRARY

Termcap Access Library (libtermcap, -ltermcap)

# SYNOPSIS

`#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);

# DESCRIPTION

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.

# SEE ALSO

terminfo(3), terminfo(5)

# HISTORY

`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.

# AUTHORS

Roy Marples <roy@NetBSD.org>

March 14, 2011 | NetBSD 9.5