Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ curs_initscr(3x) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

curses(3X)



curs_initscr(3X)        LIBRARY FUNCTIONS        curs_initscr(3X)



NAME
     cursinitscr:  initscr, newterm, endwin, isendwin, setterm,
     delscreen  -  curses  screen initialization and manipulation
     routines

SYNOPSIS
     #include <curses.h>

     WINDOW *initscr(void);
     int endwin(void);
     int isendwin(void);
     SCREEN *newterm(char *type, FILE *outfd, FILE *infd);
     SCREEN *setterm(SCREEN *new);
     void delscreen(SCREEN* sp);

DESCRIPTION
     initscr is almost always the first routine  that  should  be
     called  (the  exceptions  are  slkinit, filter, ripoffline,
     useenv and, for multiple-terminal  applications,  newterm.)
     This determines the terminal type and initializes all curses
     data structures.  initscr also  causes  the  first  call  to
     refresh  to  clear  the  screen.   If  errors occur, initscr
     writes an appropriate error message to  standard  error  and
     exits;  otherwise,  a pointer is returned to stdscr.  If the
     program needs an indication of error  conditions,  newterm()
     should  be  used  instead of initscr; initscr should only be
     called once per application.  A program that outputs to more
     than  one  terminal  should use the newterm routine for each
     terminal instead of initscr.  A program that needs an  indi-
     cation  of  error conditions, so it can continue to run in a
     line-oriented mode if the terminal cannot support a  screen-
     oriented  program, would also use this routine.  The routine
     newterm should be called once for each terminal.  It returns
     a  variable  of  type  SCREEN  *  which should be saved as a
     reference to that terminal.  The arguments are the  type  of
     the  terminal  to  be used in place of $TERM, a file pointer
     for output to the terminal, and  another  file  pointer  for
     input  from  the  terminal  (if  type is NULL, $TERM will be
     used).  The program must also call endwin for each  terminal
     being used before exiting from curses.  If newterm is called
     more than once for the same  terminal,  the  first  terminal
     referred to must be the last one for which endwin is called.
     A program should always call endwin before exiting or escap-
     ing from curses mode temporarily.  This routine restores tty
     modes, moves the cursor to the lower left-hand corner of the
     screen  and  resets  the terminal into the proper non-visual
     mode.  Calling refresh or doupdate after a temporary  escape
     causes the program to resume visual mode.  The isendwin rou-
     tine returns TRUE if endwin has been called without any sub-
     sequent   calls  to  wrefresh,  and  FALSE  otherwise.   The
     setterm routine is used to switch between different  termi-
     nals.   The  screen  reference  new  becomes the new current



                                                                1





curs_initscr(3X)        LIBRARY FUNCTIONS        curs_initscr(3X)



     terminal.  The previous terminal is returned by the routine.
     This  is the only routine which manipulates SCREEN pointers;
     all other routines affect only the  current  terminal.   The
     delscreen  routine  frees storage associated with the SCREEN
     data structure.  The endwin routine does  not  do  this,  so
     delscreen  should  be  called  after  endwin if a particular
     SCREEN is no longer needed.

RETURN VALUE
     endwin returns the integer ERR upon failure and OK upon suc-
     cessful  completion.   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>.

     Note that initscr and newterm may be macros.

SEE ALSO
     curses(3X), curskernel(3X), cursrefresh(3X), cursslk(3X),
     cursutil(3X).

































                                                                2



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