X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_inwstr.3x.html;h=0d8c3c1e71dbcddafea11f0909c9a5f35b924355;hb=HEAD;hp=db5e1b2a78f06feffa065186bc4593490d0c2932;hpb=bca50d0d8592defee6c584fdedd25f4b1a31345b;p=ncurses.git diff --git a/doc/html/man/curs_inwstr.3x.html b/doc/html/man/curs_inwstr.3x.html index db5e1b2a..d5777a28 100644 --- a/doc/html/man/curs_inwstr.3x.html +++ b/doc/html/man/curs_inwstr.3x.html @@ -1,6 +1,7 @@ -
--curs_inwstr(3x) curs_inwstr(3x) +curs_inwstr(3x) Library calls curs_inwstr(3x)
inwstr, innwstr, winwstr, winnwstr, mvinwstr, mvinnwstr, mvwinwstr, - mvwinnwstr - get a string of wchar_t characters from a curses window + mvwinnwstr - get a wide-character string from a curses window
#include <curses.h> - int inwstr(wchar_t *wstr); - int innwstr(wchar_t *wstr, int n); - int winwstr(WINDOW *win, wchar_t *wstr); - int winnwstr(WINDOW *win, wchar_t *wstr, int n); - int mvinwstr(int y, int x, wchar_t *wstr); - int mvinnwstr(int y, int x, wchar_t *wstr, int n); - int mvwinwstr(WINDOW *win, int y, int x, wchar_t *wstr); - int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *wstr, int n); + int inwstr(wchar_t * wstr); + int winwstr(WINDOW * win, wchar_t * wstr); + int mvinwstr(int y, int x, wchar_t * wstr); + int mvwinwstr(WINDOW * win, int y, int x, wchar_t * wstr); + + int innwstr(wchar_t * wstr, int n); + int winnwstr(WINDOW * win, wchar_t * wstr, int n); + int mvinnwstr(int y, int x, wchar_t * wstr, int n); + int mvwinnwstr(WINDOW * win, int y, int x, wchar_t * wstr, int n);
- These routines return a string of wchar_t wide characters in wstr, - extracted starting at the current cursor position in the named window. + winwstr extracts a wide-character string from a curses window win, + starting at the cursor and stopping at the end of the line, and stores + it in wstr, terminating it with a wide null character and omitting any + attributes and color pair identifier that curses associates with each + character. winnwstr does the same, but copies at most n characters + from win. An n of -1 implies no limit; winnwstr then works like + winwstr. ncurses(3x) describes the variants of these functions. + + +
+ On successful operation, these functions return the count of wide + characters copied from win to wstr. They return ERR upon failure. + innwstr, winnwstr, mvinnwstr, and mvwinnwstr return ERR if n is + insufficiently large to store a complete wide character string. + (Recall that a curses complex character can contain multiple wide + characters, some of which may be non-spacing.) + + In ncurses, these functions return ERR if - The four functions with n as the last argument return a leading sub- - string at most n characters long (exclusive of the trailing NUL). - Transfer stops at the end of the current line, or when n characters - have been stored at the location referenced by wstr. + o win is NULL or - If the size n is not large enough to store a complete complex charac- - ter, an error is generated. + o wstr is NULL. + + Functions prefixed with "mv" first perform cursor movement and fail if + the position (y, x) is outside the window boundaries.
- All routines except winnwstr may be macros. + All of these functions except winnwstr may be implemented as macros. - Each cell in the window holds a complex character (i.e., base- and com- - bining-characters) together with attributes and color. These functions - store only the wide characters, ignoring attributes and color. Use - in_wchstr to return the complex characters from a window. + Reading a line that overflows the array pointed to by str with inwstr, + winwstr, mvinwstr, or mvwinwstr causes undefined results. Use of + innwstr, winnwstr, mvinnwstr, and mvwinnwstr is recommended instead. -
- All routines return ERR upon failure. Upon successful completion, the - *inwstr routines return OK, and the *innwstr routines return the number - of characters read into the string. +
+ innwstr, winnwstr, mvinnwstr, and mvwinnwstr's treatment of -1 as a + valid value of n is an ncurses extension. - Functions with a "mv" prefix first perform a cursor movement using - wmove, and return an error if the position is outside the window, or if - the window pointer is null. + +
+ Applications employing ncurses extensions should condition their use on + the visibility of the NCURSES_VERSION preprocessor macro. + + X/Open Curses, Issue 4 describes these functions. It specifies no + error conditions for them. + + Notwithstanding the foregoing, X/Open Curses Issues 4 and 7 both state + that innwstr, winnwstr, mvinnwstr, and mvwinnwstr "fail ... [i]f the + array is not large enough to contain any complete characters". + Strictly interpreted, this means that a caller of these functions + cannot use their return values to detect truncation of a wide-character + string copied from more than one character cell in win. ncurses + reports any truncation with ERR. + + X/Open Curses specifies inwstr, winwstr, mvinwstr, and mvwinwstr as + returning OK rather than a (wide) character count, unlike their non- + wide counterparts instr, winstr, mvinstr, and mvwinstr. ncurses + regards this inconsistency as an error in the standard.
- curses(3x), curs_instr(3x), curs_in_wchstr(3x) + curs_instr(3x) describes comparable functions of the ncurses library in + its non-wide-character configuration. + curses(3x), curs_in_wch(3x), curs_in_wchstr(3x) - curs_inwstr(3x) + +ncurses 6.5 2024-06-08 curs_inwstr(3x)