ncurses 6.2 - patch 20210213
[ncurses.git] / man / curs_getch.3x
index 1196b3d61285592c4430b3f558f1e6b287d994d7..a8c4bc1f080b7d1ab9396336c55d55f20c233285 100644 (file)
@@ -1,6 +1,7 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2015,2016 Free Software Foundation, Inc.              *
+.\" Copyright 2018-2019,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_getch.3x,v 1.47 2016/06/11 22:56:33 tom Exp $
+.\" $Id: curs_getch.3x,v 1.57 2020/12/19 21:38:20 tom Exp $
 .TH curs_getch 3X ""
 .na
 .hy 0
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .de bP
-.IP \(bu 4
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
 ..
 .SH NAME
 \fBgetch\fR,
 \fBint getch(void);\fR
 .br
 \fBint wgetch(WINDOW *\fP\fIwin);\fR
-.br
+.sp
 \fBint mvgetch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
 .br
 \fBint mvwgetch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
+.sp
 \fBint ungetch(int \fP\fIch\fP\fB);\fR
+.sp
+/* extension */
 .br
 \fBint has_key(int \fP\fIch\fP\fB);\fR
 .br
@@ -102,7 +110,8 @@ keys are listed in \fB<curses.h>\fR as macros with values outside the range
 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
@@ -119,7 +128,8 @@ otherwise, the function key value is returned.
 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,
@@ -140,7 +150,7 @@ it is necessary to enable \fBkeypad\fR for \fBgetch\fP to return these codes.
 Not all of these are necessarily supported on any particular terminal.
 .bP
 The naming convention may seem obscure, with some apparent
-misspellings (such as "RSUME" for "resume").
+misspellings (such as \*(``RSUME\*('' for \*(``resume\*('').
 The names correspond to the long terminfo capability names for the keys,
 and were defined long ago, in the 1980s.
 .PP
@@ -289,21 +299,23 @@ string (see \fBkey_defined\fP(3X)).
 .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
+Functions with a \*(``mv\*('' prefix first perform a cursor movement using
 \fBwmove\fP, and return an error if the position is outside the window,
 or if the window pointer is null.
 .SH NOTES
@@ -312,7 +324,9 @@ discouraged, as it will cause a delay of up to one second while the
 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.
@@ -330,10 +344,10 @@ the \fIEnter\fP key on the regular keyboard is already handled by
 the standard ASCII characters for carriage-return and line-feed,
 .bP
 depending on whether \fBnl\fP or \fBnonl\fP was called,
-pressing "Enter" on the regular keyboard may return either a carriage-return
-or line-feed, and finally
+pressing \*(``Enter\*('' on the regular keyboard
+may return either a carriage-return or line-feed, and finally
 .bP
-"Enter or send" is the standard description for this key.
+\*(``Enter or send\*('' is the standard description for this key.
 .PP
 When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
 \fBmvwgetch\fR, nocbreak mode (\fBnocbreak\fR) and echo mode
@@ -378,15 +392,13 @@ input timeout or non-blocking mode has been set.
 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
@@ -394,9 +406,9 @@ any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_inopts\fR(3X),
-\fBcurs_outopts\fR(3X),
 \fBcurs_mouse\fR(3X),
 \fBcurs_move\fR(3X),
+\fBcurs_outopts\fR(3X),
 \fBcurs_refresh\fR(3X),
 \fBcurs_variables\fR(3X),
 \fBresizeterm\fR(3X).