curs_inch(3x) Library calls curs_inch(3x)
inch, winch, mvinch, mvwinch - get a curses character from a window
#include <curses.h>
chtype inch(void);
chtype winch(WINDOW * win);
chtype mvinch(int y, int x);
chtype mvwinch(WINDOW * win, int y, int x);
winch returns the curses character, including its attributes and color
pair identifier, at the cursor position in the window win. Subsection
"Video Attributes" of attron(3x) explains how to extract these data
from a chtype. ncurses(3x) describes the variants of this function.
These functions return OK on success and ERR on failure.
In ncurses, they return ERR if win is NULL.
Functions prefixed with "mv" first perform cursor movement and fail if
the position (y, x) is outside the window boundaries.
inch, mvinch, and mvwinch may be implemented as macros.
These functions do not fail if the window contains cells of curses
complex characters; that is, if they contain characters with codes
wider than eight bits (or greater than 255 as an unsigned decimal
integer). They instead extract only the low-order eight bits of the
character code from the cell.
X/Open Curses Issue 4 describes these functions. It specifies no error
conditions for them.
The original curses in 4BSD (1980) defined winch as a macro accessing
the WINDOW structure member representing character cell data, at that
time a char, containing only a 7-bit ASCII character code and a
"standout" attribute bit, the only one the library supported.
SVr2 curses (1984) extended this approach, widening the character code
to eight bits and permitting several attributes to be combined with it
by storing them together in a chtype, an alias of unsigned short.
Because a macro was used, its value was not type-checked as a function
return value could have been. Goodheart documented SVr3 (1987) winch
as returning an int. SVr3.1's (1987) chtype became an alias of
unsigned long, using 16 bits for the character code and widening the
type in practical terms to 32 bits, as 64-bit Unix systems were not yet
in wide use, and fixed-width integral types would not be standard until
ISO C99. SVr3.2 (1988) added a 6-bit color pair identifier alongside
the attributes.
curs_in_wch(3x) describes comparable functions of the ncurses library
in its wide-character configuration (ncursesw).
curses(3x), curs_instr(3x)
ncurses 6.5 2025-02-15 curs_inch(3x)