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 \ Ta KEY_SHELP Ta Shift Help 39851ffecc1SBen Gras.It \ Ta KEY_SHOME Ta Shift Home 39951ffecc1SBen Gras.It \ Ta KEY_SIC Ta Shift Insert Character 40051ffecc1SBen Gras.It \ 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