X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=man%2Fcurs_getch.3x;h=8d94e0aad86117a4a4b19afc00534000e45e5e2a;hp=a8b2ffea1868a70e8dd1c4b901535f394bb7e6a8;hb=21c8ffa0edf2e389f3f674f0c08009002c6f357d;hpb=471bc007361fd4bc8d2fae060c7d5b09828ed541 diff --git a/man/curs_getch.3x b/man/curs_getch.3x index a8b2ffea..8d94e0aa 100644 --- a/man/curs_getch.3x +++ b/man/curs_getch.3x @@ -1,6 +1,6 @@ '\" t .\"*************************************************************************** -.\" Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * +.\" Copyright (c) 1998-2014,2015 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 * @@ -27,7 +27,7 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_getch.3x,v 1.37 2012/07/07 20:04:56 tom Exp $ +.\" $Id: curs_getch.3x,v 1.42 2015/07/21 08:44:04 tom Exp $ .TH curs_getch 3X "" .na .hy 0 @@ -48,17 +48,18 @@ .PP \fBint getch(void);\fR .br -\fBint wgetch(WINDOW *win);\fR +\fBint wgetch(WINDOW *\fP\fIwin);\fR .br -\fBint mvgetch(int y, int x);\fR +\fBint mvgetch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR .br -\fBint mvwgetch(WINDOW *win, int y, int x);\fR +\fBint mvwgetch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR .br -\fBint ungetch(int ch);\fR +\fBint ungetch(int \fP\fIch\fP\fB);\fR .br -\fBint has_key(int ch);\fR +\fBint has_key(int \fP\fIch\fP\fB);\fR .br .SH DESCRIPTION +.SS Reading characters The \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR and \fBmvwgetch\fR, routines read a character from the window. In no-delay mode, if no input is waiting, the value \fBERR\fR is returned. @@ -71,25 +72,34 @@ In half-delay mode, the program waits until a character is typed or the specified timeout has been reached. .PP -Unless \fBnoecho\fR has been set, +If \fBecho\fR is enabled, and the window is not a pad, then the character will also be echoed into the designated window according to the following rules: -if the character is the current erase character, left arrow, or backspace, +.bP +If the character is the current erase character, left arrow, or backspace, the cursor is moved one space to the left and that screen position is erased as if \fBdelch\fR had been called. +.bP If the character value is any other \fBKEY_\fR define, the user is alerted with a \fBbeep\fR call. +.bP +If the character is a carriage-return, +and if \fBnl\fP is enabled, +it is translated to a line-feed after echoing. +.bP Otherwise the character is simply output to the screen. .PP If the window is not a pad, and it has been moved or modified since the last call to \fBwrefresh\fR, \fBwrefresh\fR will be called before another character is read. +.SS Keypad mode .PP If \fBkeypad\fR is \fBTRUE\fR, and a function key is pressed, the token for that function key is returned instead of the raw characters. Possible function keys are defined in \fB\fR as macros with values outside the range -of 8-bit characters whose names begin with \fBKEY_\fR. Thus, a variable +of 8-bit characters whose names begin with \fBKEY_\fR. +Thus, a variable intended to hold the return value of a function key must be of short size or larger. .PP @@ -101,22 +111,22 @@ time, the character is passed through; 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. +.SS Ungetting characters .PP The \fBungetch\fR routine places \fIch\fR back onto the input queue to be returned by the next call to \fBwgetch\fR. There is just one input queue for all windows. .PP -.SS Function Keys -The following function keys, defined in \fB\fR, might be returned by +.SS Predefined key-codes +The following special keys, defined in \fB\fR, may be returned by \fBgetch\fR if \fBkeypad\fR has been enabled. -Note that not all of these are -necessarily supported on any particular terminal. -.sp +Not all of these are necessarily supported on any particular terminal. +.PP .TS center tab(/) ; -l l l l . \fIName\fR/\fIKey\fR \fIname\fR +_ KEY_BREAK/Break key KEY_DOWN/The four arrow keys ... KEY_UP @@ -216,7 +226,7 @@ KEY_UNDO/Undo key .TE .PP Keypad is arranged like this: -.sp +.br .TS center allbox tab(/) ; c c c . @@ -225,13 +235,30 @@ c c c . \fBC1\fR/\fBdown\fR/\fBC3\fR .TE .sp -The \fBhas_key\fR routine takes a key value from the above list, and -returns TRUE or FALSE according to whether +A few of these predefined values do \fInot\fP correspond to a real key: +.bP +.B KEY_RESIZE +is returned when the \fBSIGWINCH\fP signal has been detected +(see \fBinitscr\fP(3X) and \fBresizeterm\fR(3X)). +.bP +.B KEY_MOUSE +is returned for mouse-events (see \fBcurs_mouse\fR(3X)). +.SS Testing key-codes +.PP +The \fBhas_key\fR routine takes a key-code value from the above list, and +returns \fBTRUE\fP or \fBFALSE\fP according to whether the current terminal type recognizes a key with that value. -Note that a few values do not correspond to a real key, -e.g., \fBKEY_RESIZE\fP and \fBKEY_MOUSE\fP. -See \fBresizeterm\fR(3X) for more details about \fBKEY_RESIZE\fP, and -\fBcurs_mouse\fR(3X) for a discussion of \fBKEY_MOUSE\fP. +.PP +The library also supports these extensions: +.RS 3 +.TP 5 +.B define_key +defines a key-code for a given string (see \fBdefine_key\fP(3X)). +.TP 5 +.B key_defined +checks if there is a key-code defined for a given +string (see \fBkey_defined\fP(3X)). +.RE .PP .SH RETURN VALUE All routines return the integer \fBERR\fR upon failure and an integer value @@ -257,7 +284,7 @@ Use of the escape key by a programmer for a single character function is discouraged, as it will cause a delay of up to one second while the keypad code looks for a following function-key sequence. .PP -Note that some keys may be the same as commonly used control +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. Some curses implementations may differ according to whether they treat these control keys specially (and ignore the terminfo), or