KEY_CLOSE/Close key KEY_COMMAND/Cmd (command) key
KEY_COPY/Copy key KEY_CREATE/Create key KEY_END/End key
KEY_EXIT/Exit key KEY_FIND/Find key KEY_HELP/Help key
- KEY_MARK/Mark key KEY_MESSAGE/Message key KEY_MOVE/Move
- key KEY_NEXT/Next object key KEY_OPEN/Open key
- KEY_OPTIONS/Options key KEY_PREVIOUS/Previous object key
- KEY_REDO/Redo key KEY_REFERENCE/Ref(erence) key
- KEY_REFRESH/Refresh key KEY_REPLACE/Replace key
- KEY_RESTART/Restart key KEY_RESUME/Resume key
+ KEY_MARK/Mark key KEY_MESSAGE/Message key KEY_MOUSE/Mouse
+ event read KEY_MOVE/Move key KEY_NEXT/Next object key
+ KEY_OPEN/Open key KEY_OPTIONS/Options key KEY_PREVI-
+ OUS/Previous object key KEY_REDO/Redo key KEY_REFER-
+ ENCE/Ref(erence) key KEY_REFRESH/Refresh key
+ KEY_REPLACE/Replace key KEY_RESIZE/Screen resized
+ KEY_RESTART/Restart key KEY_RESUME/Resume key
KEY_SAVE/Save key KEY_SBEG/Shifted beginning key KEY_SCAN-
- CEL/Shifted cancel key KEY_SCOMMAND/Shifted command key
- KEY_SCOPY/Shifted copy key KEY_SCREATE/Shifted create key
- KEY_SDC/Shifted delete char key KEY_SDL/Shifted delete
- line key KEY_SELECT/Select key KEY_SEND/Shifted end key
+ CEL/Shifted cancel key KEY_SCOMMAND/Shifted command key
+ KEY_SCOPY/Shifted copy key KEY_SCREATE/Shifted create key
+ KEY_SDC/Shifted delete char key KEY_SDL/Shifted delete
+ line key KEY_SELECT/Select key KEY_SEND/Shifted end key
KEY_SEOL/Shifted clear line key KEY_SEXIT/Shifted exit key
KEY_SFIND/Shifted find key KEY_SHELP/Shifted help key
- KEY_SHOME/Shifted home key KEY_SIC/Shifted input key
+ KEY_SHOME/Shifted home key KEY_SIC/Shifted input key
KEY_SLEFT/Shifted left arrow key KEY_SMESSAGE/Shifted mes-
sage key KEY_SMOVE/Shifted move key KEY_SNEXT/Shifted next
- key KEY_SOPTIONS/Shifted options key KEY_SPREVIOUS/Shifted
- KEY_SRIGHT/Shifted right arrow KEY_SRSUME/Shifted resume
- key KEY_SSAVE/Shifted save key KEY_SSUSPEND/Shifted sus-
- pend key KEY_SUNDO/Shifted undo key KEY_SUSPEND/Suspend
+ redo key KEY_SREPLACE/Shifted replace key
+ KEY_SRIGHT/Shifted right arrow KEY_SRSUME/Shifted resume
+ key KEY_SSAVE/Shifted save key KEY_SSUSPEND/Shifted sus-
+ pend key KEY_SUNDO/Shifted undo key KEY_SUSPEND/Suspend
key KEY_UNDO/Undo key
Keypad is arranged like this:
- center allbox tab(/) ; c c c . <STRONG>A1</STRONG>/<STRONG>up</STRONG>/<STRONG>A3</STRONG> <STRONG>left</STRONG>/<STRONG>B2</STRONG>/<STRONG>right</STRONG>
+ center allbox tab(/) ; c c c . <STRONG>A1</STRONG>/<STRONG>up</STRONG>/<STRONG>A3</STRONG> <STRONG>left</STRONG>/<STRONG>B2</STRONG>/<STRONG>right</STRONG>
<STRONG>C1</STRONG>/<STRONG>down</STRONG>/<STRONG>C3</STRONG>
The <STRONG>has_key</STRONG> routine takes a key value from the above list,
- and returns TRUE or FALSE according as the current termi-
+ and returns TRUE or FALSE according as the current termi-
nal type recognizes a key with that value.
</PRE>
<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an
+ All routines return the integer <STRONG>ERR</STRONG> upon failure and an
integer value other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of ungetch())
upon successful completion.
</PRE>
<H2>NOTES</H2><PRE>
Use of the escape key by a programmer for a single charac-
- ter function is discouraged, as it will cause a delay of
+ ter function is discouraged, as it will cause a delay of
up to one second while the keypad code looks for a follow-
ing function-key sequence.
- When using <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, or <STRONG>mvwgetch</STRONG>, nocbreak
+ When using <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, or <STRONG>mvwgetch</STRONG>, nocbreak
mode (<STRONG>nocbreak</STRONG>) and echo mode (<STRONG>echo</STRONG>) should not be used at
- the same time. Depending on the state of the tty driver
- when each character is typed, the program may produce
+ the same time. Depending on the state of the tty driver
+ when each character is typed, the program may produce
undesirable results.
Note that <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be macros.
Historically, the set of keypad macros was largely defined
- by the extremely function-key-rich keyboard of the AT&T
- 7300, aka 3B1, aka Safari 4. Modern personal computers
- usually have only a small subset of these. IBM PC-style
- consoles typically support little more than <STRONG>KEY_UP</STRONG>,
- <STRONG>KEY_DOWN</STRONG>, <STRONG>KEY_LEFT</STRONG>, <STRONG>KEY_RIGHT</STRONG>, <STRONG>KEY_HOME</STRONG>, <STRONG>KEY_END</STRONG>,
+ by the extremely function-key-rich keyboard of the AT&T
+ 7300, aka 3B1, aka Safari 4. Modern personal computers
+ usually have only a small subset of these. IBM PC-style
+ consoles typically support little more than <STRONG>KEY_UP</STRONG>,
+ <STRONG>KEY_DOWN</STRONG>, <STRONG>KEY_LEFT</STRONG>, <STRONG>KEY_RIGHT</STRONG>, <STRONG>KEY_HOME</STRONG>, <STRONG>KEY_END</STRONG>,
<STRONG>KEY_NPAGE</STRONG>, <STRONG>KEY_PPAGE</STRONG>, and function keys 1 through 12. The
Ins key is usually mapped to <STRONG>KEY_IC</STRONG>.
</PRE>
<H2>PORTABILITY</H2><PRE>
- The *get* functions are described in the XSI Curses stan-
- dard, Issue 4. They read single-byte characters only.
- The standard specifies that they return <STRONG>ERR</STRONG> on failure,
+ The *get* functions are described in the XSI Curses stan-
+ dard, Issue 4. They read single-byte characters only.
+ The standard specifies that they return <STRONG>ERR</STRONG> on failure,
but specifies no error conditions.
- The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or
- backspace characters was not specified in the SVr4 docu-
- mentation. This description is adopted from the XSI
- dled signals is unspecified in the SVr4 and XSI Curses
- documentation. Under historical curses implementations,
- it varied depending on whether the operating system's
- implementation of handled signal receipt interrupts a
- <STRONG><A HREF="read.2.html">read(2)</A></STRONG> call in progress or not, and also (in some imple-
- mentations) depending on whether an input timeout or non-
+ The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or
+ backspace characters was not specified in the SVr4 docu-
+
+ The behavior of <STRONG>getch</STRONG> and friends in the presence of han-
+ dled signals is unspecified in the SVr4 and XSI Curses
+ documentation. Under historical curses implementations,
+ it varied depending on whether the operating system's
+ implementation of handled signal receipt interrupts a
+ <STRONG><A HREF="read.2.html">read(2)</A></STRONG> call in progress or not, and also (in some imple-
+ mentations) depending on whether an input timeout or non-
blocking mode hsd been set.
Programmers concerned about portability should be prepared
- for either of two cases: (a) signal receipt does not
- interrupt <STRONG>getch</STRONG>; (b) signal receipt interrupts <STRONG>getch</STRONG> and
- causes it to return ERR with <STRONG>errno</STRONG> set to <STRONG>EINTR</STRONG>. Under
- the <STRONG>ncurses</STRONG> implementation, handled signals never inter-
+ for either of two cases: (a) signal receipt does not
+ interrupt <STRONG>getch</STRONG>; (b) signal receipt interrupts <STRONG>getch</STRONG> and
+ causes it to return ERR with <STRONG>errno</STRONG> set to <STRONG>EINTR</STRONG>. Under
+ the <STRONG>ncurses</STRONG> implementation, handled signals never inter-
rupt <STRONG>getch</STRONG>.
- The <STRONG>has_key</STRONG> function is unique to <STRONG>ncurses</STRONG>. We recommend
- that any code using it be conditionalized on the NCURSES
- feature macro.
+ The <STRONG>has_key</STRONG> function is unique to <STRONG>ncurses</STRONG>. We recommend
+ that any code using it be conditionalized on the
+ <STRONG>NCURSES_VERSION</STRONG> feature macro.
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3X)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>, <STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG>,
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>.
-
-
+ <STRONG><A HREF="ncurses.3x.html">curses(3X)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>,
+ <STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>. <STRONG><A HREF="resizeterm.3x.html">resizeterm(3X)</A></STRONG>.