unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

TERMCAP(3X)                                                        TERMCAP(3X)



NAME
       termcap,  tgetent,  tgetnum, tgetflag, tgetstr, tgoto, tputs - terminal
       independent operation routines

SYNOPSIS
       char PC;
       char *BC;
       char *UP;
       short ospeed;

       tgetent(bp, name)
       char *bp, *name;

       tgetnum (id)
       char *id;

       tgetflag (id)
       char *id;

       char *
       tgetstr(id, area)
       char *id, **area;

       char *
       tgoto(cm, destcol, destline)
       char *cm;

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

DESCRIPTION
       These functions extract and use capabilities from the terminal capabil-
       ity data base termcap(5).  These are low level routines; see curses(3V)
       for a higher level package.

       tgetent() extracts the entry for terminal name into the bp buffer, with
       the  current  size of the tty (usually a window).  This allows pre-Sun-
       Windows programs to run in a window of arbitrary size.  bp should be  a
       character  buffer  of size 1024 and must be retained through all subse-
       quent calls to tgetnum(), tgetflag(), and tgetstr().  tgetent() returns
       -1  if  it cannot open the termcap() file, 0 if the terminal name given
       does not have an entry, and 1 if all goes well.  It will  look  in  the
       environment  for  a TERMCAP variable.  If found, and the value does not
       begin with a slash, and the terminal type name is the same as the envi-
       ronment  string TERM, the TERMCAP string is used instead of reading the
       termcap file.  If it does begin with a slash, the string is used  as  a
       path  name rather than /etc/termcap.  This can speed up entry into pro-
       grams that call tgetent, as well as to help debug new terminal descrip-
       tions  or  to  make  one for your terminal if you cannot write the file
       /etc/termcap.  Note: if the window  size  changes,  the  ``lines''  and
       ``columns''  entries  in bp are no longer correct.  See the for details
       regarding [how to handle] this.

       tgetnum() gets the numeric value of capability ID, returning -1  if  is
       not  given  for  the  terminal.   tgetflag() returns 1 if the specified
       capability is present in the terminal's entry, 0 if it is  not.   tget-
       str()  gets the string value of capability ID, placing it in the buffer
       at area, advancing the area pointer.  It decodes the abbreviations  for
       this  field  described  in termcap(5), except for cursor addressing and
       padding information.  tgetstr() returns the string pointer if  success-
       ful.  Otherwise it returns zero.

       tgoto()  returns  a  cursor  addressing string decoded from cm to go to
       column destcol in line destline.  It uses  the  external  variables  UP
       (from the up capability) and BC (if bc is given rather than bs) if nec-
       essary to avoid placing \n, ^D or ^@ in the returned string.  (Programs
       which  call  tgoto()  should be sure to turn off the XTABS bit(s),since
       tgoto() may now output a tab.  Note: programs using termcap() should in
       general  turn off XTABS anyway since some terminals use ^I (CTRL-I) for
       other functions, such as nondestructive space.)  If  a  %  sequence  is
       given which is not understood, then tgoto() returns OOPS.

       tputs()  decodes  the  leading  padding  information  of the string cp;
       affcnt gives the number of lines affected by the  operation,  or  1  if
       this  is  not  applicable,  outc is a routine which is called with each
       character in turn.  The external variable  ospeed  should  contain  the
       encoded  output  speed  of  the  terminal  as described in tty(4).  The
       external variable PC should contain a pad character to  be  used  (from
       the pc capability) if a NULL (^@) is inappropriate.

FILES
       /usr/lib/libtermcap.a
                           -ltermcap library
       /etc/termcap        data base

SEE ALSO
       ex(1), curses(3V), tty(4), termcap(5)



                                6 October 1987                     TERMCAP(3X)