Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

TERMINFO(3)                Library Functions Manual                TERMINFO(3)

     setupterm, set_curterm, del_curterm, termname, longname, tigetflag,
     tigetnum, tigetstr, tparm, tputs, putp, ti_setupterm, ti_getflag,
     ti_getnum, ti_getstr, tiparm, ti_tiparm, ti_puts, ti_putp - terminal
     independent operation routines

     Terminal Information Library (libterminfo, -lterminfo)

     #include <term.h>

     char PC;
     short ospeed;
     TERMINAL *cur_term;

     setupterm(const char *name, int fildes, int *errret);

     set_curterm(TERMINAL *nterm);

     del_curterm(TERMINAL *oterm);

     char *

     char *

     tigetnum(const char *id);

     tigetflag(const char *id);

     char *
     tigetstr(const char *id);

     char *
     tparm(const char *cm, long p1, long p2, long p3, long p4, long p5,
         long p6, long p7, long p8, long p9);

     tputs(const char *cp, int affcnt, int (*outc)(int));

     putp(const char *cp);

     ti_setupterm(TERMINAL **, const char *name, int fildes, int *error);

     ti_getflag(const TERMINAL *, const char *id);

     ti_getnum(const TERMINAL *, const char *id);

     const char *
     ti_getstr(const TERMINAL *, const char *id);

     char *
     tiparm(const char *cm, ...);

     char *
     ti_tiparm(TERMINAL *, const char *cm, ...);

     ti_puts(const TERMINAL *term, const char *str, int affcnt,
         int (*outc)(int ch, void *arg), void *arg);

     ti_putp(const TERMINAL *term, const char *str);

     These functions extract and use capabilities from a terminal capability
     database, usually /usr/share/misc/terminfo, the format of which is
     described in terminfo(5).  These are low level routines; see curses(3)
     for a higher level package.

     The setupterm() function extracts the entry for terminal name and then
     calls set_curterm() to set cur_term to it.  If name is NULL then it is
     replaced by the environment variable TERM.  The setupterm() function
     returns 0 on success and -1 on error.  errret is set to -1 if the
     terminfo database could not be opened, 0 if the terminal could not be
     found in the database, and 1 if all went well.

     The set_curterm() function sets the variable cur_term to nterm and makes
     all of the terminfo boolean, numeric and string variables use the values
     from nterm.  The global variables PC and ospeed are then set.  The old
     value of cur_term is returned.  The del_curterm() function frees space
     pointed to by oterm.

     The termname() function returns the name of cur_term.  The longname()
     function returns the description of cur_term.

     The tigetflag() function gets the boolean value of capability id,
     returning -1 if it is not a valid capability.  The tigetnum() function
     gets the numeric value of the capability id, returning -2 if it is not a
     valid capability.  The tigetstr() function returns the string value of
     the capability id, returning (char *)-1 if it is not a valid capability.

     The tparm() function returns a string decoded from cm with the parameters
     p1 ...  p9 applied.  Some capabilities require string parameters and only
     platforms that can fit a char * pointer inside a long can use them.  For
     platforms which don't support this, NULL is returned and errno is set to
     ENOTSUPP.  The string encoding and parameter application is described in

     The tputs() function applies padding information to the string cp; affcnt
     gives the number of lines affected by the operation, or 1 if this is not
     applicable; outc is a function which is called by each character in turn.
     The external variable ospeed controls how many padding characters are
     sent in relation to the terminal speed.  The putp() function calls
     tputs(str, 1, putchar).  The output from putp() always goes to stdout.

   NetBSD Extensions To Terminfo
     The tiparm() function allows variadic parameters instead of 9 fixed
     longs.  Numeric parameters must be passed as int.  String parameters must
     be passed as char * and works on all platforms, unlike tparm().

     The ti_*() functions correspond to the standard t*() functions but take
     an additional TERMINAL * parameter so that the terminal can be specified
     instead of assuming cur_term.  These functions use private variables to
     the TERMINAL instead of the global variables, such as PC and ospeed.

     ex(1), curses(3), terminfo(5)

     Roy Marples <roy@NetBSD.org>

NetBSD 10.99                   November 23, 2015                  NetBSD 10.99