CURS_TERMINFO(3CURSES) Curses Library Functions CURS_TERMINFO(3CURSES)
NAME
curs_terminfo, setupterm, setterm, set_curterm, del_curterm, restartterm,
tparm, tputs, putp, vidputs, vidattr, mvcur, tigetflag, tigetnum,
tigetstr - curses interfaces to terminfo database
SYNOPSIS
cc [
flag ... ]
file ...
-lcurses [
library ... ]
#include <curses.h>
#include <term.h>
int setupterm(
char *term,
int fildes,
int *errret);
int setterm(
char *term);
int set_curterm(
TERMINAL *nterm);
int del_curterm(
TERMINAL *oterm);
int restartterm(
char *term,
int fildes,
int *errret);
char *tparm(
char *str,
long int p1,
long int p2,
long int p3,
long int p4,
long int p5,
long int p6,
long int p7,
long int p8,
long int p9);
int tputs(
char *str,
int affcnt,
int (*putc)(
char));
int putp(
char *str);
int vidputs(
chtype attrs,
int (*putc)(
char));
int vidattr(
chtype attrs);
int mvcur(
int oldrow,
int oldcol,
int newrow,
int newcol);
int tigetflag(
char *capname);
int tigetnum(
char *capname);
char *tigetstr(
char *capname);
DESCRIPTION
These low-level routines must be called by programs that have to deal
directly with the
terminfo database to handle certain terminal
capabilities, such as programming function keys. For all other
functionality,
curses routines are more suitable and their use is
recommended.
Initially,
setupterm() should be called. Note that
setupterm() is
automatically called by
initscr() and
newterm(). This defines the set of
terminal-dependent variables (listed in
terminfo(5)). The
terminfo variables
lines and
columns are initialized by
setupterm() as follows:
If
use_env(FALSE) has been called, values for
lines and
columns specified
in
terminfo are used. Otherwise, if the environment variables
LINES and
COLUMNS exist, their values are used. If these environment variables do
not exist and the program is running in a window, the current window size
is used. Otherwise, if the environment variables do not exist, the values
for
lines and
columns specified in the
terminfo database are used.
The headers
<curses.h> and
<term.h> should be included (in this order) to
get the definitions for these strings, numbers, and flags. Parameterized
strings should be passed through
tparm() to instantiate them. All
terminfo strings (including the output of
tparm()) should be printed with
tputs() or
putp(). Call the
reset_shell_mode() routine to restore the tty
modes before exiting (see
curs_kernel(3CURSES)). Programs which use
cursor addressing should output
enter_ca_mode upon startup and should
output
exit_ca_mode before exiting. Programs desiring shell escapes
should call
reset_shell_mode and output
exit_ca_mode before the shell is
called and should output
enter_ca_mode and call
reset_prog_mode after
returning from the shell.
The
setupterm() routine reads in the
terminfo database, initializing the
terminfo structures, but does not set up the output virtualization
structures used by
curses. The terminal type is the character string
term; if
term is null, the environment variable
TERM is used. All output
is to file descriptor
fildes which is initialized for output. If
errret is not null, then
setupterm() returns
OK or
ERR and stores a status value
in the integer pointed to by
errret. A status of
1 in
errret is normal,
0 means that the terminal could not be found, and
-1 means that the
terminfo database could not be found. If
errret is null,
setupterm() prints an error message upon finding an error and exits. Thus, the
simplest call is:
setupterm((char *)0, 1, (int *)0);,
which uses all the defaults and sends the output to
stdout.
The
setterm() routine is being replaced by
setupterm(). The call:
setupterm(term, 1, (int *)0)
provides the same functionality as
setterm(term). The
setterm() routine
is included here for compatibility and is supported at Level 2.
The
set_curterm() routine sets the variable
cur_term to
nterm, and makes
all of the
terminfo boolean, numeric, and string variables use the values
from
nterm.
The
del_curterm() routine frees the space pointed to by
oterm and makes
it available for further use. If
oterm is the same as
cur_term,
references to any of the
terminfo boolean, numeric, and string variables
thereafter may refer to invalid memory locations until another
setupterm() has been called.
The
restartterm() routine is similar to
setupterm() and
initscr(), except
that it is called after restoring memory to a previous state. It assumes
that the windows and the input and output options are the same as when
memory was saved, but the terminal type and baud rate may be different.
The
tparm() routine instantiates the string
str with parameters
pi. A
pointer is returned to the result of
str with the parameters applied.
The
tputs() routine applies padding information to the string
str and
outputs it. The
str must be a terminfo string variable or the return
value from
tparm(),
tgetstr(), or
tgoto().
affcnt is the number of lines
affected, or 1 if not applicable.
putc is a
putchar()-like routine to
which the characters are passed, one at a time.
The
putp() routine calls
tputs(str, 1, putchar). Note that the output of
putpA() always goes to
stdout, not to the
fildes specified in
setupterm().
The
vidputs() routine displays the string on the terminal in the video
attribute mode
attrs, which is any combination of the attributes listed
in
curses(3CURSES). The characters are passed to the
putchar()-like
routine
putc() . The
vidattr() routine is like the
vidputs() routine, except that it
outputs through
putchar().
The
mvcur() routine provides low-level cursor motion.
The
tigetflag(),
tigetnum() and
tigetstr() routines return the value of
the capability corresponding to the
terminfo capname passed to them, such
as
xenl.
With the
tigetflag() routine, the value
-1 is returned if
capname is not
a boolean capability.
With the
tigetnum() routine, the value
-2 is returned if
capname is not a
numeric capability.
With the
tigetstr() routine, the value
(char *)-1 is returned if
capname is not a string capability.
The
capname for each capability is given in the table column entitled
capname code in the capabilities section of
terminfo(5).
char *boolnames, *boolcodes, *boolfnames
char *numnames, *numcodes, *numfnames
char *strnames, *strcodes, *strfnames
These null-terminated arrays contain the
capnames, the
termcap codes, and
the full C names, for each of the
terminfo variables.
RETURN VALUES
All routines return the integer
ERR upon failure and an integer value
other than
ERR upon successful completion, unless otherwise noted in the
preceding routine descriptions.
Routines that return pointers always return
NULL on error.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT-Level | Unsafe |
+---------------+-----------------+
SEE ALSO
putc(3C),
curs_initscr(3CURSES),
curs_kernel(3CURSES),
curs_termcap(3CURSES),
curses(3CURSES),
terminfo(5),
attributes(7)NOTES
The header <
curses.h> automatically includes the headers <
stdio.h> and
<
unctrl.h>.
The
setupterm() routine should be used in place of
setterm().
Note that
vidattr() and
vidputs() may be macros.
December 31, 1996
CURS_TERMINFO(3CURSES)