# termcap(3)

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

    SYNOPSIS
         #include <termcap.h>

         int tgetent(char *bp, char *name)
         int tgetflag(char *id)
         int tgetnum(char *id)
         char *tgetstr(char *id, char **area)
         char *tgoto(char *cm, int destcol, int destline)
         int tputs(char *cp, int affcnt, void (*outc)(int))

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

         Tgetent extracts the entry for terminal name into the buffer at  bp.   Bp
         should  be  a  character buffer of size 1024 and must be retained through
         all subsequent calls to tgetnum, tgetflag, and tgetstr.  Tgetent  returns
         -1  if  it  cannot find a termcap file, 0 if the terminal name given does
         not have an entry, and 1 if all goes well.

         Tgetent uses the following recipe to find  the  termcap  file  and  entry
         name:

              if $TERMCAP is itself a termcap entry for name
              then
                   use $TERMCAP
              elif $TERMCAP names a file
              then
                   use entry name found in that file
              elif this is Minix-vmd
              then
                   if $TERMPATH is defined
                   then
                        search the termcap files named in $TERMPATH for the  first
                        occurance of a name entry and use that entry
                   else
                        the path $HOME/.termcap:/etc/termcap:/usr/etc/termcap"  is
                        searched for entry name
                   fi
              fi

         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.  Tgetstr returns  the
         string  value  of the capability id, places it in the buffer at area, and
         advances the area pointer.  It decodes the abbreviations for  this  field
         described  in  termcap(5),  except  for  cursor  addressing  and  padding
         information.  Tgetstr returns NULL if the capability was not found.

         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 necessary 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  that programs using termcap should in general turn off XTABS
         anyway since some terminals use  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 output speed of
         the terminal as encoded by stty(3).   The  external  variable  PC  should
         contain  a  pad  character  to be used (from the pc capability) if a null
         (^@) is inappropriate.

    SEE ALSO
         curses(3), termcap(5).

    AUTHOR
         William Joy

    NOTES
         The Minix implementation does not support any of the external  variables,
         only  the  functions  calls.   The Minix-vmd termcap does support it all,
         although noone in his right mind meddles with those variables.