curs_get_wstr(3x) curs_get_wstr(3x)
get_wstr, getn_wstr, wget_wstr, wgetn_wstr, mvget_wstr, mvgetn_wstr, mvwget_wstr, mvwgetn_wstr - curses 端末キーボードからワイド文字の配列を取得する
#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);
get_wstr の効果は、改行、その他の行末、もしくはファイル末尾の 状態が処理されるまで、get_wch を連続して呼び出すのと同じです。 ファイル末尾の状態は <wchar.h> で定義された WEOF で表されます。 改行と行末の状態は wchar_t 型の \n で表されます。 すべての場合に、文字列の最後は wchar_t 型のヌル文字で 終端されます。 このルーチンは結果を wstr が指す領域に格納します。 消去文字 (erase) と行消去文字 (kill) は解釈されます。 ウインドウで keypad モードが有効な場合、KEY_LEFT と KEY_BACKSPACE はともに行消去文字と同じとみなされます。 入力された文字は、echo が現在有効な場合にのみ エコーされます。 その場合、バックスペースは前の文字の削除としてエコーされます (一般的に左への動き) 。 wget_wstr の効果は、wget_wch を連続して呼び出すのと同じです。 mvget_wstr の効果は、move を呼び出した後、get_wch を連続して 呼び出すのと同じです。 mvwget_wstr の効果は、wmove を呼び出した後、wget_wch を 連続して呼び出すのと同じです。 getn_wstr, mvgetn_wstr, mvwgetn_wstr, wgetn_wstr 関数は それぞれ get_wstr, mvget_wstr, mvwget_wstr, wget_wstr 関数と 同じですが、*n_* 関数は最大 n 文字しか読まず、入力バッファの オーバーフローを防ぎます。
get_wstr, mvget_wstr, mvwget_wstr, wget_wstr を wstr が指す 配列がオーバーフローするような行の読み込みに使うと、未定義の 結果を引き起こします。 それぞれ getn_wstr, mvgetn_wstr, mvwgetn_wstr, wgetn_wstr の 使用を推奨します。 これらの関数は KEY_ で始まる定義済みの値を返せません。 KEY_ 値と有効な wchar_t 値を区別する方法がないからです。 wgetn_wstr 以外のすべてのルーチンは、マクロかもしれません。
これらすべての関数は、正常終了のとき OK を、その他のとき ERR を返します。 ウインドウ引数を使う関数は、ウインドウ引数がヌルのとき エラーを返します。 wgetn_wstr これに伴う wget_wch 呼び出しが失敗したときに エラーを返します。 mv で始まる関数は、最初に wmove を使用してカーソルを移動し、 位置がウィンドウの外だった場合、またはウィンドウポインタが ヌルの場合にエラーを返します。
これらの関数は The Single Unix Specification, Version 2 に 記載されています。 エラーの条件は定義されていません。 この実装では、ウインドウ・ポインタがヌルのとき、または 低レベルの wget_wch 呼び出しが ERR を返したときに ERR を 返します。 後者の場合、他のデータなく ERR が返ったときは、 ファイル末尾の状態として扱われ、戻ってきた配列は WEOF と それに続く wchar_t 型のヌル文字を含んでいます。 X/Open curses はこれらの関数が wchar_t 型の配列を渡すように 記述していますが、すべての供給元の実装はこの配列に wint_t 型を使っています。
関数: curses(3x), curs_get_wch(3x), curs_getstr(3x). 訳注: echo, keypad は curs_inopts(3x)、 KEY_ 定数は curs_getch(3x) を参照。 curs_get_wstr(3x)