# curs_inch 3x 2026-07-04 ncurses 6.6 Library calls

    curs_inch(3x)                    Library calls                   curs_inch(3x)

## NAME

           inch, winch, mvinch, mvwinch - get a curses character from a window

## SYNOPSIS

           #include <curses.h>

           chtype inch(void);
           chtype winch(WINDOW * win);
           chtype mvinch(int y, int x);
           chtype mvwinch(WINDOW * win, int y, int x);

## DESCRIPTION

           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.

## RETURN VALUE

           Functions prefixed with "mv" first perform cursor  movement  and  fail,
           returning ERR if the position (y, x) is outside the window boundaries.

           If win is NULL, ncurses returns 0, which is not OK.

## NOTES

           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).  The returned value depends upon the locale:

           o   If the locale encoding is UTF-8, ncurses  extracts  only  the  low-
               order eight bits of the character code from the cell.

           o   If the locale encoding is not UTF-8, ncurses converts the character
               from  Unicode  to  the  locale encoding, and extracts the low-order
               eight bits from the resulting character.

## PORTABILITY

           X/Open Curses Issue 4 describes these functions.  It specifies no error
           conditions for them.

## HISTORY

           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.

## SEE ALSO

           curs_in_wch(3x)  describes  comparable functions of the ncurses library
           in its wide-character configuration (ncursesw).

           curses(3x), curs_instr(3x)

    ncurses 6.6                       2026-07-04                     curs_inch(3x)