'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2017,2018 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_getch.3x,v 1.47 2016/06/11 22:56:33 tom Exp $
+.\" $Id: curs_getch.3x,v 1.53 2018/07/28 22:15:59 tom Exp $
.TH curs_getch 3X ""
.na
.hy 0
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBgetch\fR,
of 8-bit characters.
Their names begin with \fBKEY_\fR.
.bP
-Other (user-defined) function keys which may be defined using \fBdefine_key\fP(3X)
+Other (user-defined) function keys which may be defined
+using \fBdefine_key\fP(3X)
have no names, but also are expected to have values outside the range of
8-bit characters.
.PP
For this reason, many terminals experience a delay between the time
a user presses the escape key and the escape is returned to the program.
.PP
-In \fBncurses\fP, the timer normally expires after the value in \fBESCDELAY\fP (see \fBcurs_variables\fP(3X)).
+In \fBncurses\fP, the timer normally expires after
+the value in \fBESCDELAY\fP (see \fBcurs_variables\fP(3X)).
If \fBnotimeout\fP is \fBTRUE\fP, the timer does not expire;
it is an infinite (or very large) value.
Because function keys usually begin with an escape character,
.PP
.SH RETURN VALUE
All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
+other than \fBERR\fR (\fBOK\fR in the case of \fBungetch\fP) upon successful
completion.
.RS 3
.TP 5
\fBungetch\fP
-returns ERR
+returns \fBERR\fP
if there is no more room in the FIFO.
.TP
\fBwgetch\fP
-returns ERR
+returns \fBERR\fP
if the window pointer is null, or
-if its timeout expires without having any data.
+if its timeout expires without having any data, or
+if the execution was interrupted by a signal (\fBerrno\fR will be set to
+\fBEINTR\fR).
.RE
.PP
Functions with a "mv" prefix first perform a cursor movement using
keypad code looks for a following function-key sequence.
.PP
Some keys may be the same as commonly used control
-keys, e.g., \fBKEY_ENTER\fP versus control/M, \fBKEY_BACKSPACE\fP versus control/H.
+keys, e.g.,
+\fBKEY_ENTER\fP versus control/M,
+\fBKEY_BACKSPACE\fP versus control/H.
Some curses implementations may differ according to whether they
treat these control keys specially (and ignore the terminfo), or
use the terminfo definitions.
terminfo capabilities, but no higher-level functions use the feature.
The implementation in ncurses is an extension.
.PP
-\fBKEY_RESIZE\fP is an extension first implemented for ncurses.
+\fBKEY_RESIZE\fP is an extension first implemented for ncurses.
NetBSD curses later added this extension.
.PP
Programmers concerned about portability should be prepared for either of two
cases: (a) signal receipt does not interrupt \fBgetch\fR; (b) signal receipt
-interrupts \fBgetch\fR and causes it to return ERR with \fBerrno\fR set to
+interrupts \fBgetch\fR and causes it to return \fBERR\fP with \fBerrno\fR set to
\fBEINTR\fR.
-Under the \fBncurses\fR implementation, handled signals never
-interrupt \fBgetch\fR.
.PP
The \fBhas_key\fR function is unique to \fBncurses\fR.
We recommend that