NAME¶
initscr, 
newterm, 
endwin, 
isendwin, 
set_term,
  
delscreen - 
curses screen initialization and manipulation
  routines
SYNOPSIS¶
#include <curses.h>
 
WINDOW *initscr(void);
 
int endwin(void);
 
bool isendwin(void);
 
SCREEN *newterm(char *type, FILE *outfd, FILE *infd);
 
SCREEN *set_term(SCREEN *new);
 
void delscreen(SCREEN* sp);
 
DESCRIPTION¶
initscr is normally the first 
curses routine to call when
  initializing a program. A few special routines sometimes need to be called
  before it; these are 
slk_init, 
filter, 
ripoffline,
  
use_env. For multiple-terminal applications, 
newterm may be
  called before 
initscr.
The initscr code 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.
A program that outputs to more than one terminal should use the 
newterm
  routine for each terminal instead of 
initscr. A program that needs to
  inspect capabilities, so it can continue to run in a line-oriented mode if the
  terminal cannot support a screen-oriented program, would also use
  
newterm. 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 escaping 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 routine returns 
TRUE if 
endwin has been called
  without any subsequent calls to 
wrefresh, and 
FALSE otherwise.
The 
set_term routine is used to switch between different terminals. The
  screen reference 
new becomes the new current 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
  successful completion.
Routines that return pointers always return 
NULL on error.
X/Open defines no error conditions. In this implementation 
endwin returns
  an error if the terminal was not initialized.
NOTES¶
Note that 
initscr and 
newterm may be macros.
PORTABILITY¶
These functions are described in the XSI Curses standard, Issue 4. It specifies
  that portable applications must not call 
initscr more than once.
Old versions of curses, e.g., BSD 4.4, may have returned a null pointer from
  
initscr when an error is detected, rather than exiting. It is safe but
  redundant to check the return value of 
initscr in XSI Curses.
SEE ALSO¶
ncurses(3NCURSES), 
kernel(3NCURSES), 
refresh(3NCURSES),
  
slk(3NCURSES), 
util(3NCURSES),
  
curses_variables(3NCURSES).