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

# NAME

tgetent, tgetnum, tgetflag, tgetstr, tgoto, tputs — 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 8.2