curs_get_wstr(3x) — Linux manual page
curs_get_wstr(3X) curs_get_wstr(3X)
NAME
get_wstr, getn_wstr, wget_wstr, wgetn_wstr, mvget_wstr,
mvgetn_wstr, mvwget_wstr, mvwgetn_wstr - get an array of wide
characters from a curses terminal keyboard
SYNOPSIS
#include <curses.h>
int get_wstr(wint_t *wstr);
int getn_wstr(wint_t *wstr, int n);
int wget_wstr(WINDOW *win, wint_t *wstr);
int wgetn_wstr(WINDOW *win, wint_t *wstr, int n);
int mvget_wstr(int y, int x, wint_t *wstr);
int mvgetn_wstr(int y, int x, wint_t *wstr, int n);
int mvwget_wstr(WINDOW *win, int y, int x, wint_t *wstr);
int mvwgetn_wstr(WINDOW *win, int y, int x, wint_t *wstr, int n);
DESCRIPTION
The effect of get_wstr is as though a series of calls to
get_wch(3X) were made, until a newline, other end-of-line, or
end-of-file condition is processed. An end-of-file condition is
represented by WEOF, as defined in <wchar.h>. The newline and
end-of-line conditions are represented by the \n wchar_t value.
In all instances, the end of the string is terminated by a null
wchar_t. The routine places resulting values in the area pointed
to by wstr.
The user's erase and kill characters are interpreted. If keypad
mode is on for the window, KEY_LEFT and KEY_BACKSPACE are both
considered equivalent to the user's kill character.
Characters input are echoed only if echo is currently on. In
that case, backspace is echoed as deletion of the previous char‐
acter (typically a left motion).
The effect of wget_wstr is as though a series of calls to
wget_wch were made.
The effect of mvget_wstr is as though a call to move and then a
series of calls to get_wch were made.
The effect of mvwget_wstr is as though a call to wmove and then a
series of calls to wget_wch were made.
The getn_wstr, mvgetn_wstr, mvwgetn_wstr, and wgetn_wstr func‐
tions are identical to the get_wstr, mvget_wstr, mvwget_wstr, and
wget_wstr functions, respectively, except that the *n_* versions
read at most n characters, letting the application prevent over‐
flow of the input buffer.
NOTES
Using get_wstr, mvget_wstr, mvwget_wstr, or wget_wstr to read a
line that overflows the array pointed to by wstr causes undefined
results. The use of getn_wstr, mvgetn_wstr, mvwgetn_wstr, or
wgetn_wstr, respectively, is recommended.
These functions cannot return KEY_ values because there is no way
to distinguish a KEY_ value from a valid wchar_t value.
All of these routines except wgetn_wstr may be macros.
RETURN VALUE
All of these functions return OK upon successful completion.
Otherwise, they return ERR.
Functions using a window parameter return an error if it is null.
wgetn_wstr
returns an error if the associated call to wget_wch
failed.
Functions with a “mv” prefix first perform a cursor movement us‐
ing wmove, and return an error if the position is outside the
window, or if the window pointer is null.
PORTABILITY
These functions are described in The Single Unix Specification,
Version 2. No error conditions are defined. This implementation
returns ERR if the window pointer is null, or if the lower-level
wget_wch call returns an ERR. In the latter case, an ERR return
without other data is treated as an end-of-file condition, and
the returned array contains a WEOF followed by a null wchar_t.
X/Open curses documented these functions to pass an array of
wchar_t in 1997, but that was an error because of this part of
the description:
The effect of get_wstr is as though a series of calls to
get_wch were made, until a newline character, end-of-line
character, or end-of-file character is processed.
The latter function get_wch can return a negative value, while
wchar_t is a unsigned type. All of the vendors implement this
using wint_t, following the standard.
X/Open Curses, Issue 7 (2009) is unclear regarding whether the
terminating null wchar_t value is counted in the length parameter
n. X/Open Curses, Issue 7 revised the corresponding description
of wgetnstr to address this issue. The unrevised description of
wget_nwstr can be interpreted either way. This implementation
counts the terminator in the length.
X/Open Curses does not specify what happens if the length n is
negative.
• For analogy with wgetnstr, ncurses 6.2 uses a limit (based on
LINE_MAX).
• Some other implementations (such as Solaris xcurses) do the
same, while others (PDCurses) do not allow this.
• NetBSD 7 curses imitates ncurses 6.1 in this regard, treating
a -1 as an indefinite number of characters.
SEE ALSO
Functions: curses(3X), curs_get_wch(3X), curs_getstr(3X).
COLOPHON
This page is part of the ncurses (new curses) project. Informa‐
tion about the project can be found at
⟨https://www.gnu.org/software/ncurses/ncurses.html⟩. If you have
a bug report for this manual page, send it to
bug-ncurses-request@gnu.org. This page was obtained from the
project's upstream Git mirror of the CVS repository
⟨https://github.com/mirror/ncurses.git⟩ on 2024-06-14. (At that
time, the date of the most recent commit that was found in the
repository was 2023-03-12.) If you discover any rendering
problems in this HTML version of the page, or you believe there
is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org