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 7.2