xref: /minix3/lib/libcurses/curses_input.3 (revision 0c3ae37f525eceade8dc047e551f5c9cb33faeb1)
1*0c3ae37fSLionel Sambuc.\"	$NetBSD: curses_input.3,v 1.22 2012/04/21 12:27:28 roy Exp $
251ffecc1SBen Gras.\"
351ffecc1SBen Gras.\" Copyright (c) 2002
451ffecc1SBen Gras.\"	Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
551ffecc1SBen Gras.\"
651ffecc1SBen Gras.\" This code is donated to the NetBSD Foundation by the Author.
751ffecc1SBen Gras.\"
851ffecc1SBen Gras.\" Redistribution and use in source and binary forms, with or without
951ffecc1SBen Gras.\" modification, are permitted provided that the following conditions
1051ffecc1SBen Gras.\" are met:
1151ffecc1SBen Gras.\" 1. Redistributions of source code must retain the above copyright
1251ffecc1SBen Gras.\"    notice, this list of conditions and the following disclaimer.
1351ffecc1SBen Gras.\" 2. Redistributions in binary form must reproduce the above copyright
1451ffecc1SBen Gras.\"    notice, this list of conditions and the following disclaimer in the
1551ffecc1SBen Gras.\"    documentation and/or other materials provided with the distribution.
1651ffecc1SBen Gras.\" 3. The name of the Author may not be used to endorse or promote
1751ffecc1SBen Gras.\"    products derived from this software without specific prior written
1851ffecc1SBen Gras.\"    permission.
1951ffecc1SBen Gras.\"
2051ffecc1SBen Gras.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
2151ffecc1SBen Gras.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2251ffecc1SBen Gras.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2351ffecc1SBen Gras.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
2451ffecc1SBen Gras.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2551ffecc1SBen Gras.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2651ffecc1SBen Gras.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2751ffecc1SBen Gras.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2851ffecc1SBen Gras.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2951ffecc1SBen Gras.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3051ffecc1SBen Gras.\" SUCH DAMAGE.
3151ffecc1SBen Gras.\"
3251ffecc1SBen Gras.\"
33*0c3ae37fSLionel Sambuc.Dd April 5, 2012
3451ffecc1SBen Gras.Dt CURSES_INPUT 3
3551ffecc1SBen Gras.Os
3651ffecc1SBen Gras.Sh NAME
3751ffecc1SBen Gras.Nm curses_input ,
3851ffecc1SBen Gras.Nm getch ,
3951ffecc1SBen Gras.Nm wgetch ,
4051ffecc1SBen Gras.Nm mvgetch ,
4151ffecc1SBen Gras.Nm mvwgetch ,
4251ffecc1SBen Gras.Nm define_key ,
4351ffecc1SBen Gras.Nm keyok ,
4451ffecc1SBen Gras.Nm getnstr ,
4551ffecc1SBen Gras.Nm wgetnstr ,
4651ffecc1SBen Gras.Nm mvgetnstr ,
4751ffecc1SBen Gras.Nm mvwgetnstr ,
4851ffecc1SBen Gras.Nm getstr ,
4951ffecc1SBen Gras.Nm wgetstr ,
5051ffecc1SBen Gras.Nm mvgetstr ,
5151ffecc1SBen Gras.Nm mvwgetstr ,
5251ffecc1SBen Gras.Nm keypad ,
5351ffecc1SBen Gras.Nm notimeout ,
5451ffecc1SBen Gras.Nm timeout ,
5551ffecc1SBen Gras.Nm wtimeout ,
5651ffecc1SBen Gras.Nm nodelay ,
5751ffecc1SBen Gras.Nm ungetch
5851ffecc1SBen Gras.Nd curses input stream routines
5951ffecc1SBen Gras.Sh LIBRARY
6051ffecc1SBen Gras.Lb libcurses
6151ffecc1SBen Gras.Sh SYNOPSIS
6251ffecc1SBen Gras.In curses.h
6351ffecc1SBen Gras.Ft int
6451ffecc1SBen Gras.Fn getch "void"
6551ffecc1SBen Gras.Ft int
6651ffecc1SBen Gras.Fn wgetch "WINDOW *win"
6751ffecc1SBen Gras.Ft int
6851ffecc1SBen Gras.Fn mvgetch "int y" "int x"
6951ffecc1SBen Gras.Ft int
7051ffecc1SBen Gras.Fn mvwgetch "WINDOW *win" "int y" "int x"
7151ffecc1SBen Gras.Ft int
7251ffecc1SBen Gras.Fn keyok "int key_symbol" "bool flag"
7351ffecc1SBen Gras.Ft int
7451ffecc1SBen Gras.Fn define_key "char *sequence" "int key_symbol"
7551ffecc1SBen Gras.Ft int
7651ffecc1SBen Gras.Fn getnstr "char *str" "int limit"
7751ffecc1SBen Gras.Ft int
7851ffecc1SBen Gras.Fn wgetnstr "WINDOW *win" "char *str" "int limit"
7951ffecc1SBen Gras.Ft int
8051ffecc1SBen Gras.Fn mvgetnstr "int y" "int x" "char *str" "int limit"
8151ffecc1SBen Gras.Ft int
8251ffecc1SBen Gras.Fn mvwgetnstr "WINDOW *win" "int y" "int x" "char *str" "int limit"
8351ffecc1SBen Gras.Ft int
8451ffecc1SBen Gras.Fn getstr "char *str"
8551ffecc1SBen Gras.Ft int
8651ffecc1SBen Gras.Fn wgetstr "WINDOW *win" "char *str"
8751ffecc1SBen Gras.Ft int
8851ffecc1SBen Gras.Fn mvgetstr "int y" "int x" "char *str"
8951ffecc1SBen Gras.Ft int
9051ffecc1SBen Gras.Fn mvwgetstr "WINDOW *win" "int y" "int x" "char *str"
9151ffecc1SBen Gras.Ft int
9251ffecc1SBen Gras.Fn keypad "WINDOW *win" "boolf flag"
9351ffecc1SBen Gras.Ft int
9451ffecc1SBen Gras.Fn notimeout "WINDOW *win" "boolf flag"
9551ffecc1SBen Gras.Ft int
9651ffecc1SBen Gras.Fn timeout "int delay"
9751ffecc1SBen Gras.Ft int
9851ffecc1SBen Gras.Fn wtimeout "WINDOW *win" "int delay"
9951ffecc1SBen Gras.Ft int
10051ffecc1SBen Gras.Fn nodelay "WINDOW *win" "boolf flag"
10151ffecc1SBen Gras.Ft int
10251ffecc1SBen Gras.Fn ungetch "int c"
10351ffecc1SBen Gras.Pp
10451ffecc1SBen Gras.Va extern int ESCDELAY ;
10551ffecc1SBen Gras.Sh DESCRIPTION
10651ffecc1SBen GrasThese functions read characters and strings from the window input file
10751ffecc1SBen Grasdescriptor.
10851ffecc1SBen Gras.Pp
10951ffecc1SBen GrasThe
11051ffecc1SBen Gras.Fn getch
11151ffecc1SBen Grasfunction reads a character from the
11251ffecc1SBen Gras.Dv stdscr
11351ffecc1SBen Grasinput file descriptor and returns it.
11451ffecc1SBen GrasIf the
11551ffecc1SBen Gras.Fn keypad
11651ffecc1SBen Grasflag has been set to
11751ffecc1SBen Gras.Dv TRUE ,
11851ffecc1SBen Grasthen
11951ffecc1SBen Gras.Fn getch
12051ffecc1SBen Graswill assemble multi-character key sequences into key symbols,
12151ffecc1SBen GrasIf the terminal is resized,
12251ffecc1SBen Gras.Fn getch
12351ffecc1SBen Graswill return
12451ffecc1SBen Gras.Dv KEY_RESIZE ,
12551ffecc1SBen Grasregardless of the setting of
12651ffecc1SBen Gras.Fn keypad .
12751ffecc1SBen GrasCalling
12851ffecc1SBen Gras.Fn getch
12951ffecc1SBen Graswill cause an implicit
13051ffecc1SBen Gras.Fn refresh
13151ffecc1SBen Grason
13251ffecc1SBen Gras.Dv stdscr .
13351ffecc1SBen Gras.Pp
13451ffecc1SBen GrasThe
13551ffecc1SBen Gras.Fn wgetch
13651ffecc1SBen Grasfunction is the same as the
13751ffecc1SBen Gras.Fn getch
13851ffecc1SBen Grasfunction, excepting that it reads from the input file descriptor associated
13951ffecc1SBen Graswith the window specified by
14051ffecc1SBen Gras.Fa win .
14151ffecc1SBen Gras.Pp
14251ffecc1SBen GrasIf the
14351ffecc1SBen Gras.Fn keypad
14451ffecc1SBen Grasflag is
14551ffecc1SBen Gras.Dv TRUE
14651ffecc1SBen Grasthen the assembly of specific key symbols can be disabled by using the
14751ffecc1SBen Gras.Fn keyok
14851ffecc1SBen Grasfunction.
14951ffecc1SBen GrasIf the
15051ffecc1SBen Gras.Fa flag
15151ffecc1SBen Grasis set to
15251ffecc1SBen Gras.Dv FALSE
15351ffecc1SBen Grason a key symbol then
15451ffecc1SBen Gras.Fn getch
15551ffecc1SBen Graswill behave as if the character sequence associated with that key symbol
15651ffecc1SBen Graswas not recognised and will return the component characters one at a time to
15751ffecc1SBen Grasthe caller.
15851ffecc1SBen Gras.Pp
15951ffecc1SBen GrasCustom associations between sequences of characters and a key symbol can
16051ffecc1SBen Grasbe made by using the
16151ffecc1SBen Gras.Fn define_key
16251ffecc1SBen Grasfunction.
16351ffecc1SBen GrasNormally, these associations are made by the information in the
164*0c3ae37fSLionel Sambuc.Xr terminfo 5
16551ffecc1SBen Grasdatabase but the
16651ffecc1SBen Gras.Fn define_key
16751ffecc1SBen Grasfunction gives the capability to remove or add more associations.
16851ffecc1SBen GrasIf
16951ffecc1SBen Gras.Fn define_key
17051ffecc1SBen Grasis passed a non-NULL string in
17151ffecc1SBen Gras.Fa sequence
17251ffecc1SBen Grasit will associate that sequence with the key symbol passed in
17351ffecc1SBen Gras.Fa key_symbol .
17451ffecc1SBen GrasThe key symbol may be one of the ones listed below or a custom value that
17551ffecc1SBen Grasis application defined.
17651ffecc1SBen GrasIt is valid to have multiple character sequences map to the same key
17751ffecc1SBen Grassymbol and there are no constraints on the length of the sequence allowed.
17851ffecc1SBen GrasThe assembly of custom sequences follow the same rules for inter-character
17951ffecc1SBen Grastiming and so forth as the
180*0c3ae37fSLionel Sambuc.Xr terminfo 5
18151ffecc1SBen Grasderived ones.
18251ffecc1SBen GrasIf
18351ffecc1SBen Gras.Fn define_key
18451ffecc1SBen Grasis passed a NULL in
18551ffecc1SBen Gras.Fa sequence
18651ffecc1SBen Grasthen all associations for the key symbol in
18751ffecc1SBen Gras.Fa key_symbol
18851ffecc1SBen Graswill be deleted, this includes any associations that were derived from
189*0c3ae37fSLionel Sambuc.Xr terminfo 5 .
19051ffecc1SBen Gras.Pp
19151ffecc1SBen GrasThe
19251ffecc1SBen Gras.Fn mvgetch
19351ffecc1SBen Grasand
19451ffecc1SBen Gras.Fn mvwgetch
19551ffecc1SBen Grasfunctions are the same as the
19651ffecc1SBen Gras.Fn getch
19751ffecc1SBen Grasand
19851ffecc1SBen Gras.Fn wgetch
19951ffecc1SBen Grasfunctions, respectively, excepting that
20051ffecc1SBen Gras.Fn wmove
20151ffecc1SBen Grasis called to move the cursor to the position specified by
20251ffecc1SBen Gras.Fa y ,
20351ffecc1SBen Gras.Fa x
20451ffecc1SBen Grasbefore the character is read.
20551ffecc1SBen Gras.Pp
20651ffecc1SBen GrasCalling
20751ffecc1SBen Gras.Fn getnstr ,
20851ffecc1SBen Gras.Fn wgetnstr ,
20951ffecc1SBen Gras.Fn mvgetnstr
21051ffecc1SBen Grasor
21151ffecc1SBen Gras.Fn mvwgetnstr
21251ffecc1SBen Grasis effectively the same as calling
21351ffecc1SBen Gras.Fn getch
21451ffecc1SBen Grasrepeatedly until a newline is received or the character limit
21551ffecc1SBen Gras.Fa limit
21651ffecc1SBen Grasis reached.
21751ffecc1SBen GrasOnce this happens the string is
21851ffecc1SBen Gras.Dv NULL
21951ffecc1SBen Grasterminated and returned in
22051ffecc1SBen Gras.Fa str .
22151ffecc1SBen GrasDuring input, the normal curses input key processing is performed and
22251ffecc1SBen Grasaffects the input buffer.
22351ffecc1SBen GrasThe
22451ffecc1SBen Gras.Fn mvgetnstr
22551ffecc1SBen Grasfunction calls
22651ffecc1SBen Gras.Fn wmove
22751ffecc1SBen Grasto move the cursor to the position given by
22851ffecc1SBen Gras.Fa y ,
22951ffecc1SBen Gras.Fa x
23051ffecc1SBen Grasbefore getting the string,
23151ffecc1SBen Gras.Fn wgetnstr
23251ffecc1SBen Grasreads the input from the designated window,
23351ffecc1SBen Gras.Fn mvwgetnstr
23451ffecc1SBen Grasmoves the cursor to the position given by
23551ffecc1SBen Gras.Fa y ,
23651ffecc1SBen Gras.Fa x
23751ffecc1SBen Grasbefore getting the input from the designated window.
23851ffecc1SBen Gras.Pp
23951ffecc1SBen GrasThe functions
24051ffecc1SBen Gras.Fn getstr ,
24151ffecc1SBen Gras.Fn wgetstr ,
24251ffecc1SBen Gras.Fn mvgetstr ,
24351ffecc1SBen Grasand
24451ffecc1SBen Gras.Fn mvwgetstr
24551ffecc1SBen Grasare similar to
24651ffecc1SBen Gras.Fn getnstr ,
24751ffecc1SBen Gras.Fn wgetnstr ,
24851ffecc1SBen Gras.Fn mvgetnstr ,
24951ffecc1SBen Grasand
25051ffecc1SBen Gras.Fn mvwgetnstr ,
25151ffecc1SBen Grasrespectively, excepting that there is no limit on the number of characters
25251ffecc1SBen Grasthat may be inserted into
25351ffecc1SBen Gras.Fa str .
25451ffecc1SBen GrasThis may cause the buffer to be overflowed, so their use is not recommended.
25551ffecc1SBen Gras.Pp
25651ffecc1SBen GrasThe
25751ffecc1SBen Gras.Fn keypad
25851ffecc1SBen Grasfunction is used to affect how
25951ffecc1SBen Gras.Fn getch
26051ffecc1SBen Grasprocesses input characters.
26151ffecc1SBen GrasIf
26251ffecc1SBen Gras.Fa flag
26351ffecc1SBen Grasis set to
26451ffecc1SBen Gras.Dv TRUE ,
26551ffecc1SBen Grasthen
26651ffecc1SBen Gras.Fn getch
26751ffecc1SBen Graswill scan the input stream looking for multi-character key sequences
26851ffecc1SBen Grasthat are emitted by some terminal function keys.
26951ffecc1SBen GrasIf a recognised sequence of characters is found, then
27051ffecc1SBen Gras.Fn getch
27151ffecc1SBen Graswill collapse that sequence into an integer key symbol, as shown below.
27251ffecc1SBen GrasThe default setting for the flag is
27351ffecc1SBen Gras.Dv FALSE .
27451ffecc1SBen Gras.Pp
27551ffecc1SBen GrasThe
27651ffecc1SBen Gras.Fn notimeout
27751ffecc1SBen Grasfunction controls whether or not
27851ffecc1SBen Gras.Fn getch
27951ffecc1SBen Graswill wait indefinitely between characters in a multi-character key
28051ffecc1SBen Grassequence or not.
28151ffecc1SBen GrasIf
28251ffecc1SBen Gras.Fa flag
28351ffecc1SBen Grasis
28451ffecc1SBen Gras.Dv TRUE ,
28551ffecc1SBen Grasthen there is no timeout applied between characters comprising a
28651ffecc1SBen Grasmulti-character key sequence.
28751ffecc1SBen GrasIf
28851ffecc1SBen Gras.Fa flag
28951ffecc1SBen Grasis
29051ffecc1SBen Gras.Dv FALSE ,
29151ffecc1SBen Grasthen the component characters of a multi-character sequence must not
29251ffecc1SBen Grashave an inter-character gap of more than
29351ffecc1SBen Gras.Va ESCDELAY .
29451ffecc1SBen GrasIf this timing is exceeded, then the multi-character key assembly is
29551ffecc1SBen Grasdeemed to have failed and the characters read thus far are returned
29651ffecc1SBen Grasone at a time when
29751ffecc1SBen Gras.Fn getch
29851ffecc1SBen Grasis called.
29951ffecc1SBen GrasThe default setting for the flag is
30051ffecc1SBen Gras.Dv FALSE .
30151ffecc1SBen GrasThe default value of
30251ffecc1SBen Gras.Va ESCDELAY
30351ffecc1SBen Grasis 300ms.
30451ffecc1SBen GrasIf
30551ffecc1SBen Gras.Va ESCDELAY
30651ffecc1SBen Grasis negative, no timeout is applied between characters comprising a
30751ffecc1SBen Grasmulti-character key sequence.
30851ffecc1SBen Gras.Pp
30951ffecc1SBen GrasThe
31051ffecc1SBen Gras.Fn timeout
31151ffecc1SBen Grasfunction affects the behaviour of
31251ffecc1SBen Gras.Fn getch
31351ffecc1SBen Graswhen reading a character from
31451ffecc1SBen Gras.Dv stdscr .
31551ffecc1SBen GrasIf
31651ffecc1SBen Gras.Fa delay
31751ffecc1SBen Grasis negative, then
31851ffecc1SBen Gras.Fn getch
31951ffecc1SBen Graswill block indefinitely on a read.
32051ffecc1SBen GrasIf
32151ffecc1SBen Gras.Fa delay
32251ffecc1SBen Grasis 0, then
32351ffecc1SBen Gras.Fn getch
32451ffecc1SBen Graswill return immediately with
32551ffecc1SBen Gras.Dv ERR
32651ffecc1SBen Grasif there are no characters immediately available.
32751ffecc1SBen GrasIf
32851ffecc1SBen Gras.Fa delay
32951ffecc1SBen Grasis a positive number, then
33051ffecc1SBen Gras.Fn getch
33151ffecc1SBen Graswill wait for that many milliseconds before returning and, if no character
33251ffecc1SBen Graswas available, then
33351ffecc1SBen Gras.Dv ERR
33451ffecc1SBen Graswill be returned.
33551ffecc1SBen GrasNote that for a positive number, the timeout is only accurate to the nearest
33651ffecc1SBen Grastenth of a second.
33751ffecc1SBen GrasAlso, the maximum value of
33851ffecc1SBen Gras.Fa delay
33951ffecc1SBen Grasis 25500 milliseconds.
34051ffecc1SBen GrasThe
34151ffecc1SBen Gras.Fn wtimeout
34251ffecc1SBen Grasfunction does the same as
34351ffecc1SBen Gras.Fn timeout
34451ffecc1SBen Grasbut applies to the specified window
34551ffecc1SBen Gras.Fa win .
34651ffecc1SBen Gras.Pp
34751ffecc1SBen GrasThe
34851ffecc1SBen Gras.Fn nodelay
34951ffecc1SBen Grasfunction turns on and off blocking reads for
35051ffecc1SBen Gras.Fn getch .
35151ffecc1SBen GrasIf
35251ffecc1SBen Gras.Fa flag
35351ffecc1SBen Grasis
35451ffecc1SBen Gras.Dv TRUE ,
35551ffecc1SBen Grasthen
35651ffecc1SBen Gras.Fn getch
35751ffecc1SBen Graswill not block on reads, if
35851ffecc1SBen Gras.Fa flag
35951ffecc1SBen Grasis
36051ffecc1SBen Gras.Dv FALSE ,
36151ffecc1SBen Grasthen reads will block.
36251ffecc1SBen GrasThe default setting for the flag is
36351ffecc1SBen Gras.Dv FALSE .
36451ffecc1SBen Gras.Fn nodelay win TRUE
36551ffecc1SBen Grasis equivalent to
36651ffecc1SBen Gras.Fn wtimeout win 0
36751ffecc1SBen Grasand
36851ffecc1SBen Gras.Fn nodelay win FALSE
36951ffecc1SBen Grasis equivalent to
37051ffecc1SBen Gras.Fn wtimeout win \-1 .
37151ffecc1SBen Gras.Pp
37251ffecc1SBen Gras.Fn ungetch
37351ffecc1SBen Graswill convert
37451ffecc1SBen Gras.Fa c
37551ffecc1SBen Grasinto an unsigned char and push that character back onto the input stream.
37651ffecc1SBen GrasOnly one character of push-back is guaranteed to work, more may be possible
37751ffecc1SBen Grasdepending on system resources.
37851ffecc1SBen Gras.Sh RETURN VALUES
37951ffecc1SBen GrasThe functions
38051ffecc1SBen Gras.Fn getch ,
38151ffecc1SBen Gras.Fn wgetch ,
38251ffecc1SBen Gras.Fn mvgetch ,
38351ffecc1SBen Grasand
38451ffecc1SBen Gras.Fn mvwgetch
38551ffecc1SBen Graswill return the value of the key pressed or
38651ffecc1SBen Gras.Dv ERR
38751ffecc1SBen Grasin the case of an error or a timeout.
38851ffecc1SBen GrasAdditionally, if
38951ffecc1SBen Gras.Fn keypad TRUE
39051ffecc1SBen Grashas been called on a window, then it may return one of the following values:
39151ffecc1SBen Gras.Pp
39251ffecc1SBen Gras.Bl -column "Termcap entry" "getch Return Value" "Key Function" -offset indent
39351ffecc1SBen Gras.It Sy "Termcap entry" Ta Sy "getch Return Value" Ta Sy "Key Function"
39451ffecc1SBen Gras.It \&!1 Ta KEY_SSAVE Ta Shift Save
39551ffecc1SBen Gras.It \&!2 Ta KEY_SSUSPEND Ta Shift Suspend
39651ffecc1SBen Gras.It \&!3 Ta KEY_SUNDO Ta Shift Undo
39751ffecc1SBen Gras.It \&#1 Ta KEY_SHELP Ta Shift Help
39851ffecc1SBen Gras.It \&#2 Ta KEY_SHOME Ta Shift Home
39951ffecc1SBen Gras.It \&#3 Ta KEY_SIC Ta Shift Insert Character
40051ffecc1SBen Gras.It \&#4 Ta KEY_SLEFT Ta Shift Left Arrow
40151ffecc1SBen Gras.It \&%0 Ta KEY_REDO Ta Redo
40251ffecc1SBen Gras.It \&%1 Ta KEY_HELP Ta Help
40351ffecc1SBen Gras.It \&%2 Ta KEY_MARK Ta Mark
40451ffecc1SBen Gras.It \&%3 Ta KEY_MESSAGE Ta Message
40551ffecc1SBen Gras.It \&%4 Ta KEY_MOVE Ta Move
40651ffecc1SBen Gras.It \&%5 Ta KEY_NEXT Ta Next Object
40751ffecc1SBen Gras.It \&%6 Ta KEY_OPEN Ta Open
40851ffecc1SBen Gras.It \&%7 Ta KEY_OPTIONS Ta Options
40951ffecc1SBen Gras.It \&%8 Ta KEY_PREVIOUS Ta Previous Object
41051ffecc1SBen Gras.It \&%9 Ta KEY_PRINT Ta Print
41151ffecc1SBen Gras.It \&%a Ta KEY_SMESSAGE Ta Shift Message
41251ffecc1SBen Gras.It \&%b Ta KEY_SMOVE Ta Shift Move
41351ffecc1SBen Gras.It \&%c Ta KEY_SNEXT Ta Shift Next Object
41451ffecc1SBen Gras.It \&%d Ta KEY_SOPTIONS Ta Shift Options
41551ffecc1SBen Gras.It \&%e Ta KEY_SPREVIOUS Ta Shift Previous Object
41651ffecc1SBen Gras.It \&%f Ta KEY_SPRINT Ta Shift Print
41751ffecc1SBen Gras.It \&%g Ta KEY_SREDO Ta Shift Redo
41851ffecc1SBen Gras.It \&%h Ta KEY_SREPLACE Ta Shift Replace
41951ffecc1SBen Gras.It \&%i Ta KEY_SRIGHT Ta Shift Right Arrow
42051ffecc1SBen Gras.It \&%j Ta KEY_SRSUME Ta Shift Resume
42151ffecc1SBen Gras.It \&\*[Am]0 Ta KEY_SCANCEL Ta Shift Cancel
42251ffecc1SBen Gras.It \&\*[Am]1 Ta KEY_REFERENCE Ta Reference
42351ffecc1SBen Gras.It \&\*[Am]2 Ta KEY_REFRESH Ta Refresh
42451ffecc1SBen Gras.It \&\*[Am]3 Ta KEY_REPLACE Ta Replace
42551ffecc1SBen Gras.It \&\*[Am]4 Ta KEY_RESTART Ta Restart
42651ffecc1SBen Gras.It \&\*[Am]5 Ta KEY_RESUME Ta Resume
42751ffecc1SBen Gras.It \&\*[Am]6 Ta KEY_SAVE Ta Save
42851ffecc1SBen Gras.It \&\*[Am]7 Ta KEY_SUSPEND Ta Suspend
42951ffecc1SBen Gras.It \&\*[Am]8 Ta KEY_UNDO Ta Undo
43051ffecc1SBen Gras.It \&\*[Am]9 Ta KEY_SBEG Ta Shift Begin
43151ffecc1SBen Gras.It \&*0 Ta KEY_SFIND Ta Shift Find
43251ffecc1SBen Gras.It \&*1 Ta KEY_SCOMMAND Ta Shift Command
43351ffecc1SBen Gras.It \&*2 Ta KEY_SCOPY Ta Shift Copy
43451ffecc1SBen Gras.It \&*3 Ta KEY_SCREATE Ta Shift Create
43551ffecc1SBen Gras.It \&*4 Ta KEY_SDC Ta Shift Delete Character
43651ffecc1SBen Gras.It \&*5 Ta KEY_SDL Ta Shift Delete Line
43751ffecc1SBen Gras.It \&*6 Ta KEY_SELECT Ta Select
43851ffecc1SBen Gras.It \&*7 Ta KEY_SEND Ta Shift End
43951ffecc1SBen Gras.It \&*8 Ta KEY_SEOL Ta Shift Clear to EOL
44051ffecc1SBen Gras.It \&*9 Ta KEY_SEXIT Ta Shift Exit
44151ffecc1SBen Gras.It \&@0 Ta KEY_FIND Ta Find
44251ffecc1SBen Gras.It \&@1 Ta KEY_BEG Ta Begin
44351ffecc1SBen Gras.It \&@2 Ta KEY_CANCEL Ta Cancel
44451ffecc1SBen Gras.It \&@3 Ta KEY_CLOSE Ta Close
44551ffecc1SBen Gras.It \&@4 Ta KEY_COMMAND Ta Command
44651ffecc1SBen Gras.It \&@5 Ta KEY_COPY Ta Copy
44751ffecc1SBen Gras.It \&@6 Ta KEY_CREATE Ta Create
44851ffecc1SBen Gras.It \&@7 Ta KEY_END Ta End
44951ffecc1SBen Gras.It \&@8 Ta KEY_ENTER Ta Enter
45051ffecc1SBen Gras.It \&@9 Ta KEY_EXIT Ta Exit
45151ffecc1SBen Gras.It \&F1 Ta KEY_F(11) Ta Function Key 11
45251ffecc1SBen Gras.It \&F2 Ta KEY_F(12) Ta Function Key 12
45351ffecc1SBen Gras.It \&F3 Ta KEY_F(13) Ta Function Key 13
45451ffecc1SBen Gras.It \&F4 Ta KEY_F(14) Ta Function Key 14
45551ffecc1SBen Gras.It \&F5 Ta KEY_F(15) Ta Function Key 15
45651ffecc1SBen Gras.It \&F6 Ta KEY_F(16) Ta Function Key 16
45751ffecc1SBen Gras.It \&F7 Ta KEY_F(17) Ta Function Key 17
45851ffecc1SBen Gras.It \&F8 Ta KEY_F(18) Ta Function Key 18
45951ffecc1SBen Gras.It \&F9 Ta KEY_F(19) Ta Function Key 19
46051ffecc1SBen Gras.It \&FA Ta KEY_F(20) Ta Function Key 20
46151ffecc1SBen Gras.It \&FB Ta KEY_F(21) Ta Function Key 21
46251ffecc1SBen Gras.It \&FC Ta KEY_F(22) Ta Function Key 22
46351ffecc1SBen Gras.It \&FD Ta KEY_F(23) Ta Function Key 23
46451ffecc1SBen Gras.It \&FE Ta KEY_F(24) Ta Function Key 24
46551ffecc1SBen Gras.It \&FF Ta KEY_F(25) Ta Function Key 25
46651ffecc1SBen Gras.It \&FG Ta KEY_F(26) Ta Function Key 26
46751ffecc1SBen Gras.It \&FH Ta KEY_F(27) Ta Function Key 27
46851ffecc1SBen Gras.It \&FI Ta KEY_F(28) Ta Function Key 28
46951ffecc1SBen Gras.It \&FJ Ta KEY_F(29) Ta Function Key 29
47051ffecc1SBen Gras.It \&FK Ta KEY_F(30) Ta Function Key 30
47151ffecc1SBen Gras.It \&FL Ta KEY_F(31) Ta Function Key 31
47251ffecc1SBen Gras.It \&FM Ta KEY_F(32) Ta Function Key 32
47351ffecc1SBen Gras.It \&FN Ta KEY_F(33) Ta Function Key 33
47451ffecc1SBen Gras.It \&FO Ta KEY_F(34) Ta Function Key 34
47551ffecc1SBen Gras.It \&FP Ta KEY_F(35) Ta Function Key 35
47651ffecc1SBen Gras.It \&FQ Ta KEY_F(36) Ta Function Key 36
47751ffecc1SBen Gras.It \&FR Ta KEY_F(37) Ta Function Key 37
47851ffecc1SBen Gras.It \&FS Ta KEY_F(38) Ta Function Key 38
47951ffecc1SBen Gras.It \&FT Ta KEY_F(39) Ta Function Key 39
48051ffecc1SBen Gras.It \&FU Ta KEY_F(40) Ta Function Key 40
48151ffecc1SBen Gras.It \&FV Ta KEY_F(41) Ta Function Key 41
48251ffecc1SBen Gras.It \&FW Ta KEY_F(42) Ta Function Key 42
48351ffecc1SBen Gras.It \&FX Ta KEY_F(43) Ta Function Key 43
48451ffecc1SBen Gras.It \&FY Ta KEY_F(44) Ta Function Key 44
48551ffecc1SBen Gras.It \&FZ Ta KEY_F(45) Ta Function Key 45
48651ffecc1SBen Gras.It \&Fa Ta KEY_F(46) Ta Function Key 46
48751ffecc1SBen Gras.It \&Fb Ta KEY_F(47) Ta Function Key 47
48851ffecc1SBen Gras.It \&Fc Ta KEY_F(48) Ta Function Key 48
48951ffecc1SBen Gras.It \&Fd Ta KEY_F(49) Ta Function Key 49
49051ffecc1SBen Gras.It \&Fe Ta KEY_F(50) Ta Function Key 50
49151ffecc1SBen Gras.It \&Ff Ta KEY_F(51) Ta Function Key 51
49251ffecc1SBen Gras.It \&Fg Ta KEY_F(52) Ta Function Key 52
49351ffecc1SBen Gras.It \&Fh Ta KEY_F(53) Ta Function Key 53
49451ffecc1SBen Gras.It \&Fi Ta KEY_F(54) Ta Function Key 54
49551ffecc1SBen Gras.It \&Fj Ta KEY_F(55) Ta Function Key 55
49651ffecc1SBen Gras.It \&Fk Ta KEY_F(56) Ta Function Key 56
49751ffecc1SBen Gras.It \&Fl Ta KEY_F(57) Ta Function Key 57
49851ffecc1SBen Gras.It \&Fm Ta KEY_F(58) Ta Function Key 58
49951ffecc1SBen Gras.It \&Fn Ta KEY_F(59) Ta Function Key 59
50051ffecc1SBen Gras.It \&Fo Ta KEY_F(60) Ta Function Key 60
50151ffecc1SBen Gras.It \&Fp Ta KEY_F(61) Ta Function Key 61
50251ffecc1SBen Gras.It \&Fq Ta KEY_F(62) Ta Function Key 62
50351ffecc1SBen Gras.It \&Fr Ta KEY_F(63) Ta Function Key 63
50451ffecc1SBen Gras.It \&K1 Ta KEY_A1 Ta Upper left key in keypad
50551ffecc1SBen Gras.It \&K2 Ta KEY_B2 Ta Centre key in keypad
50651ffecc1SBen Gras.It \&K3 Ta KEY_A3 Ta Upper right key in keypad
50751ffecc1SBen Gras.It \&K4 Ta KEY_C1 Ta Lower left key in keypad
50851ffecc1SBen Gras.It \&K5 Ta KEY_C3 Ta Lower right key in keypad
50951ffecc1SBen Gras.It \&Km Ta KEY_MOUSE Ta Mouse Event
51051ffecc1SBen Gras.It \&k0 Ta KEY_F0 Ta Function Key 0
51151ffecc1SBen Gras.It \&k1 Ta KEY_F(1) Ta Function Key 1
51251ffecc1SBen Gras.It \&k2 Ta KEY_F(2) Ta Function Key 2
51351ffecc1SBen Gras.It \&k3 Ta KEY_F(3) Ta Function Key 3
51451ffecc1SBen Gras.It \&k4 Ta KEY_F(4) Ta Function Key 4
51551ffecc1SBen Gras.It \&k5 Ta KEY_F(5) Ta Function Key 5
51651ffecc1SBen Gras.It \&k6 Ta KEY_F(6) Ta Function Key 6
51751ffecc1SBen Gras.It \&k7 Ta KEY_F(7) Ta Function Key 7
51851ffecc1SBen Gras.It \&k8 Ta KEY_F(8) Ta Function Key 8
51951ffecc1SBen Gras.It \&k9 Ta KEY_F(9) Ta Function Key 9
52051ffecc1SBen Gras.It \&k; Ta KEY_F(10) Ta Function Key 10
52151ffecc1SBen Gras.It \&kA Ta KEY_IL Ta Insert Line
52251ffecc1SBen Gras.It \&ka Ta KEY_CATAB Ta Clear All Tabs
52351ffecc1SBen Gras.It \&kB Ta KEY_BTAB Ta Back Tab
52451ffecc1SBen Gras.It \&kb Ta KEY_BACKSPACE Ta Backspace
52551ffecc1SBen Gras.It \&kC Ta KEY_CLEAR Ta Clear
52651ffecc1SBen Gras.It \&kD Ta KEY_DC Ta Delete Character
52751ffecc1SBen Gras.It \&kd Ta KEY_DOWN Ta Down Arrow
52851ffecc1SBen Gras.It \&kE Ta KEY_EOL Ta Clear to End Of Line
52951ffecc1SBen Gras.It \&kF Ta KEY_SF Ta Scroll Forward one line
53051ffecc1SBen Gras.It \&kH Ta KEY_LL Ta Home Down
53151ffecc1SBen Gras.It \&kh Ta KEY_HOME Ta Home
53251ffecc1SBen Gras.It \&kI Ta KEY_IC Ta Insert Character
53351ffecc1SBen Gras.It \&kL Ta KEY_DL Ta Delete Line
53451ffecc1SBen Gras.It \&kl Ta KEY_LEFT Ta Left Arrow
53551ffecc1SBen Gras.It \&kM Ta KEY_EIC Ta Exit Insert Character Mode
53651ffecc1SBen Gras.It \&kN Ta KEY_NPAGE Ta Next Page
53751ffecc1SBen Gras.It \&kP Ta KEY_PPAGE Ta Previous Page
53851ffecc1SBen Gras.It \&kR Ta KEY_SR Ta Scroll One Line Back
53951ffecc1SBen Gras.It \&kr Ta KEY_RIGHT Ta Right Arrow
54051ffecc1SBen Gras.It \&kS Ta KEY_EOS Ta Clear to End Of Screen
54151ffecc1SBen Gras.It \&kT Ta KEY_STAB Ta Set Tab
54251ffecc1SBen Gras.It \&kt Ta KEY_CTAB Ta Clear Tab
54351ffecc1SBen Gras.It \&ku Ta KEY_UP Ta Up Arrow
54451ffecc1SBen Gras.El
54551ffecc1SBen Gras.Pp
54651ffecc1SBen GrasNote that not all terminals are capable of generating all the keycodes
547*0c3ae37fSLionel Sambuclisted above nor are terminfo entries normally configured with all the
54851ffecc1SBen Grasabove capabilities defined.
54951ffecc1SBen Gras.Pp
55051ffecc1SBen GrasOther functions that return an int will return one of the following
55151ffecc1SBen Grasvalues:
55251ffecc1SBen Gras.Pp
55351ffecc1SBen Gras.Bl -tag -width ERR -compact
55451ffecc1SBen Gras.It Er OK
55551ffecc1SBen GrasThe function completed successfully.
55651ffecc1SBen Gras.It Er ERR
55751ffecc1SBen GrasAn error occurred in the function.
55851ffecc1SBen Gras.El
55951ffecc1SBen Gras.Pp
56051ffecc1SBen GrasFunctions returning pointers will return
56151ffecc1SBen Gras.Dv NULL
56251ffecc1SBen Grasif an error is detected.
56351ffecc1SBen Gras.Sh SEE ALSO
56451ffecc1SBen Gras.Xr curses_cursor 3 ,
56551ffecc1SBen Gras.Xr curses_keyname 3 ,
56651ffecc1SBen Gras.Xr curses_refresh 3 ,
56751ffecc1SBen Gras.Xr curses_tty 3 ,
568*0c3ae37fSLionel Sambuc.Xr terminfo 5
56951ffecc1SBen Gras.Sh STANDARDS
57051ffecc1SBen GrasThe
57151ffecc1SBen Gras.Nx
57251ffecc1SBen GrasCurses library complies with the X/Open Curses specification, part of the
57351ffecc1SBen GrasSingle Unix Specification.
57451ffecc1SBen Gras.Sh NOTES
57551ffecc1SBen GrasThe
57651ffecc1SBen Gras.Fn keyok
57751ffecc1SBen Grasand
57851ffecc1SBen Gras.Fn define_key
57951ffecc1SBen Grasfunctions are implementations of extensions made by the NCurses library
58051ffecc1SBen Grasto the Curses standard.
58151ffecc1SBen GrasPortable implementations should avoid the use of these functions.
58251ffecc1SBen Gras.Sh HISTORY
58351ffecc1SBen GrasThe Curses package appeared in
58451ffecc1SBen Gras.Bx 4.0 .
585