.\"***************************************************************************
-.\" Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
+.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.26 2017/01/07 19:25:15 tom Exp $
+.\" $Id: curs_initscr.3x,v 1.32 2020/02/02 23:34:34 tom Exp $
.TH curs_initscr 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.br
\fBbool isendwin(void);\fR
.br
-\fBSCREEN *newterm(char *\fP\fItype\fP\fB, FILE *\fP\fIoutfd\fP\fB, FILE *\fP\fIinfd\fP\fB);\fR
+\fBSCREEN *newterm(const char *\fP\fItype\fP\fB, FILE *\fP\fIoutfd\fP\fB, FILE *\fP\fIinfd\fP\fB);\fR
.br
\fBSCREEN *set_term(SCREEN *\fP\fInew\fP\fB);\fR
.br
.PP
The initscr code determines the terminal type and initializes all \fBcurses\fR
data structures.
-\fBinitscr\fR also causes the first call to \fBrefresh\fR(3X) to clear the screen.
+\fBinitscr\fR also causes the first call to \fBrefresh\fR(3X)
+to clear the screen.
If errors occur, \fBinitscr\fR writes an appropriate error
message to standard error and exits;
otherwise, a pointer is returned to \fBstdscr\fR.
\fBcurses\fR mode temporarily.
This routine
.bP
-restores tty modes,
+resets colors to correspond with the default color pair 0,
.bP
-moves the cursor to the lower left-hand corner of the screen and
+moves the cursor to the lower left-hand corner of the screen,
.bP
-resets the terminal into
-the proper non-visual mode.
+clears the remainder of the line so that it uses the default colors,
+.bP
+sets the cursor to normal visibility (see \fBcurs_set\fP(3X)),
+.bP
+stops cursor-addressing mode using the \fIexit_ca_mode\fP terminal capability,
+.bP
+restores tty modes (see \fBreset_shell_mode\fP(3X)).
.PP
-Calling \fBrefresh\fR(3X) or \fBdoupdate\fR after a
+Calling \fBrefresh\fR(3X) or \fBdoupdate\fR(3X) after a
temporary escape causes the program to resume visual mode.
.SS isendwin
.PP
.bP
\fBset_term\fP
returns no error.
-.SH NOTES
-Note that \fBinitscr\fR and \fBnewterm\fR may be macros.
.SH PORTABILITY
These functions were described in the XSI Curses standard, Issue 4.
As of 2015, the current document is X/Open Curses, Issue 7.
call \fBinitscr\fR more than once:
.bP
The portable way to use \fBinitscr\fP is once only,
-using \fBrefresh\fP (see curs_refresh(3X)) to restore the screen after \fBendwin\fP.
+using \fBrefresh\fP (see curs_refresh(3X))
+to restore the screen after \fBendwin\fP.
.bP
This implementation allows using \fBinitscr\fP after \fBendwin\fP.
.PP
value \*(``unknown\*('',
which normally corresponds to a terminal entry with the \fIgeneric\fP
(\fIgn\fP) capability.
-Generic entries are detected by \fBsetupterm\fP (see curs_terminfo(3X)) and cannot be
-used for full-screen operation.
+Generic entries are detected by \fBsetupterm\fP
+(see curs_terminfo(3X)) and cannot be used for full-screen operation.
Other implementations may handle a missing/empty TERM variable differently.
.SS Signal Handlers
.PP
Quoting from X/Open Curses, section 3.1.1:
.RS 5
.PP
-\fICurses implementations may provide for special handling of the SIGINT,
-SIGQUIT and SIGTSTP signals if their disposition is SIG_DFL at the time
+\fICurses implementations may provide for special handling of the \fBSIGINT\fP,
+\fBSIGQUIT\fP and \fBSIGTSTP\fP signals
+if their disposition is \fBSIG_DFL\fP at the time
\fBinitscr\fP is called \fP...
.PP
\fIAny special handling for these signals may remain in effect for the
life of the process or until the process changes the disposition of
the signal.\fP
.PP
-\fINone of the Curses functions are required to be safe with respect to signals \fP...
+\fINone of the Curses functions are required to be safe
+with respect to signals \fP...
.RE
.PP
This implementation establishes signal handlers during initialization,
When resuming the process, this implementation discards pending
input with \fBflushinput\fP (see curs_util(3X)), and repaints the screen
assuming that it has been completely altered.
-It also updates the saved terminal modes with \fBdef_shell_mode\fP (see curs_kernel(3X)).
+It also updates the saved terminal modes with \fBdef_shell_mode\fP
+(see \fBcurs_kernel\fR(3X)).
.TP 5
.B SIGWINCH
-This handles the window-size changes which were initially ignored in
+This handles the window-size changes which were ignored in
the standardization efforts.
The handler sets a (signal-safe) variable
which is later tested in \fBwgetch\fP (see curs_getch(3X)).