Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ curs_terminfo(3X) — Amiga System V Release 4 Version 1.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

curses(3X)

putc(3S)

terminfo(4)



curs_terminfo(3X)MISCELLANEOUS LIBRARY FUNCTIONScurs_terminfo(3X)



NAME
     cursterminfo:      setupterm,     setterm,     setcurterm,
     delcurterm,   restartterm,  tparm,  tputs,  putp,  vidputs,
     vidattr,  mvcur,  tigetflag,  tigetnum,  tigetstr  -  curses
     interfaces to terminfo database

SYNOPSIS
     #include <curses.h>
     #include <term.h>

     int setupterm(char *term, int fildes, int *errret);

     int setterm(char *term);
     int setcurterm(TERMINAL *nterm);

     int delcurterm(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);

     int 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(4)].  The
     terminfo variables lines  and  columns  are  initialized  by
     setupterm  as  follows:   If useenv(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  vari-
     ables  do  not exist and the program is running in a window,
     the current window size is used.  Otherwise, if the environ-
     ment  variables  do  not  exist,  the  values  for lines and
     columns specified in the terminfo database  are  used.   The
     header  files <curses.h> and <term.h> should be included (in



                          Last change:                          1




curs_terminfo(3X)MISCELLANEOUS LIBRARY FUNCTIONScurs_terminfo(3X)



     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 resetshellmode to restore the tty modes
     before  exiting  [see  curs_kernel(3X)].  Programs which use
     cursor addressing should output entercamode  upon  startup
     and  should  output  exitcamode  before exiting.  Programs
     desiring shell escapes should call resetshellmode and out-
     put  exitcamode before the shell is called and should out-
     put entercamode and call resetprogmode  after  returning
     from the shell.

     The setupterm routine reads in the terminfo  database,  ini-
     tializing  the  terminfo structures, but does not set up the
     output virtualization structures used by curses.  The termi-
     nal  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  setcurterm  routine  sets  the
     variable  curterm  to  nterm, and makes all of the terminfo
     boolean, numeric, and string variables use the  values  from
     nterm.   The  delcurterm routine frees the space pointed to
     by oterm and makes it available for further use.   If  oterm
     is  the  same as curterm, 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



                          Last change:                          2





curs_terminfo(3X)MISCELLANEOUS LIBRARY FUNCTIONScurs_terminfo(3X)



     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 putp 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(3X).   The  characters are passed to the putchar-like
     routine putc.  The vidattr routine is like the vidputs  rou-
     tine,  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 capa-
     bility 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 capabil-
     ity.  The capname for each capability is given in the  table
     column  entitled capname code in the capabilities section of
     terminfo(4).  char *boolnames, *boolcodes, *boolfnames  char
     *numnames,  *numcodes, *numfnames char *strnames, *strcodes,
     *strfnames These null-terminated  arrays  contain  the  cap-
     names,  the termcap codes, and the full C names, for each of
     the terminfo variables.

RETURN VALUE
     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  descrip-
     tions.   Routines that return pointers always return NULL on
     error.

NOTES
     The header file <curses.h> automatically includes the header
     files <stdio.h> and <unctrl.h>.

     The setupterm routine should be used in place of setterm.

     Note that vidattr and vidputs may be macros.

SEE ALSO
     curses(3X), cursinitscr(3X), curskernel(3X),
     curstermcap(3X), putc(3S), terminfo(4).










                          Last change:                          3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026