| Main index | Section 3 | 日本語 | Options |
#include <curses.h>int addch(const chtype ch); int waddch(WINDOW *win, const chtype ch); int mvaddch(int y, int x, const chtype ch); int mvwaddch(WINDOW *win, int y, int x, const chtype ch);
int echochar(const chtype ch); int wechochar(WINDOW *win, const chtype ch);
If advancement occurs at the right margin,
| &#187; | the cursor automatically wraps to the beginning of the next line; and |
| &#187; | at the bottom of the current scrolling region, and if scrollok(3X) is enabled for win, the scrolling region scrolls up one line. |
| &#187; | Backspace moves the cursor one character left; at the left margin of a window, it does nothing. |
| &#187; | Carriage return moves the cursor to the left margin on the current line of the window. |
| &#187; | Line feed does a clrtoeol(3X), then moves the cursor to the left margin on the next line of the window, and if scrollok(3X) is enabled for win, scrolls the window if the cursor was already on the last line. |
| &#187; | Tab advances the cursor to the next tab stop (possibly on the next line); these are placed at every eighth column by default. Alter the tab interval with the TABSIZE extension; see curs_variables(3X). |
Calling winch(3X) on the location of a nonprintable character does not return the character itself, but its unctrl(3X) representation.
ch may contain rendering and/or color attributes, and others can be combined with the parameter by logically oring with it. (A character with its attributes can be copied from place to place using winch(3X) and waddch.) See curs_attr(3X) for values of predefined video attribute constants that can be usefully ored with characters.
In ncurses, waddch returns ERR if it is not possible to add a complete character at the cursor position, as when conversion of a multibyte character to a byte sequence fails, or at least one of the resulting bytes cannot be added to the window. See section PORTABILITY below regarding the use of waddch with multibyte characters.
waddch can successfully write a character at the bottom right location of the window. However, ncurses returns ERR if scrollok(3X) is not enabled in that event, because it is not possible to wrap to a new line.
Functions prefixed with mv first perform cursor movement and fail if the position (y, x) is outside the window boundaries.
SVr4 curses describes a successful return value only as an integer value other than ERR.
The defaults specified for forms-drawing characters apply in the POSIX locale.
Some implementations are problematic.
| &#187; | Solaris curses, for example, define the ACS symbols as constants; others define them as elements of an array. |
| This implementation uses an array, acs_map, as did SVr4 curses. NetBSD also uses an array, actually named _acs_char, with a #define for compatibility. | |
| &#187; | HP-UX curses equates some of the ACS_ symbols to the analogous WACS_ symbols as if the ACS_ symbols were wide characters (see curs_add_wch(3X)). The misdefined symbols are the arrows and others that are not used for line drawing. |
| &#187; | X/Open Curses (Issues 2 through 7) has a typographical error for the ACS_LANTERN symbol, equating its VT100+ Character to I (capital I), while the header files for SVr4 curses and other implementations use i (small i). |
| None of the terminal descriptions on Unix platforms use uppercase I, except for Solaris (in its term info entry for screen(1), apparently based on the X/Open documentation around 1995). On the other hand, its gs6300 (AT&T PC6300 with EMOTS Terminal Emulator) description uses lowercase i. | |
The displayed values of ACS_ constants depend on
| &#187; | the ncurses ABI—for example, wide-character versus non-wide-character configurations (the former is capable of displaying Unicode while the latter is not), and |
| &#187; | whether the locale uses UTF-8 encoding. |
In ncurses, chtype holds an eight-bit character. But the library allows a multibyte character to be passed in a succession of calls to waddch. Other implementations do not; a waddch call transmits exactly one character, which may be rendered in one or more screen locations depending on whether it is printable.
Depending on the locale settings, ncurses inspects the byte passed in each waddch call, and checks whether the latest call continues a multibyte sequence. When a character is complete, ncurses displays the character and advances the cursor.
If the calling application interrupts the succession of bytes in a multibyte character sequence by changing the current location—for example, with wmove(3X)— ncurses discards the incomplete character.
For portability to other implementations, do not rely upon this behavior. Check whether a character can be represented as a single byte in the current locale.
| &#187; | If it can, call either waddch or wadd_wch(3X). |
| &#187; | If it cannot, use only wadd_wch(3X). |
curses(3X), curs_addchstr(3X), curs_addstr(3X), curs_attr(3X), curs_clear(3X), curs_inch(3X), curs_outopts(3X), curs_refresh(3X), curs_variables(3X), putchar(3)
| 2024-04-20 | curs_addch (3X) | ncurses 6.5 |
| Main index | Section 3 | 日本語 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
