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 によって表現されます。改行と行の終りの状態は、 \n wchar_t 値によって表現されます。すべての場合に、文字列の終りは、null wchar_t によって終了されます。ルーチンは、結果の値を wstr によって指された領域に置きます。ユーザの erase と kill 文字は解釈されます。キーパッドモードがウィンドウでオンであるなら、 KEY_LEFT と KEY_BACKSPACE は、両方ともユーザの kill 文字と見なされます。
echo 現在オンである場合にだけ、文字入力はエコーされます。その場合、バックスペースは、前の文字の削除として (通常左の移動) エコーされます。
wget_wstr の効果は、 wget_wch へのひと続きの呼び出しであるかのように行われます。
mvget_wstr の効果は、 move への呼び出しと、次に get_wch へのひと続きの呼び出しであるかのように行われます。
mvwget_wstr の効果は、 wmove への呼び出しと、次に wget_wch へのひと続きの呼び出しであるかのように行われます。
getn_wstr, mvgetn_wstr, mvwgetn_wstr と wgetn_wstr 関数は、 *n_* バージョンが多くても n 文字を読み込み、アプリケーションが入力バッファのオーバフローを防ぐことを除いて、それぞれ get_wstr, mvget_wstr, mvwget_wstr と wget_wstr 関数と同じです。
注
行を読み込むために get_wstr, mvget_wstr, mvwget_wstr または wget_wstr を使用することは、 wstr によって指された配列をオーバフローすることによって、未定義の結果を生じます。 getn_wstr, mvgetn_wstr, mvwgetn_wstr または wgetn_wstr をそれぞれ使用することを勧めます。これらの関数は、有効な wchar_t 値から KEY_ 値を区別する方法がないので、 KEY_ 値を返すことはできません。
wgetn_wstr を除いて、これらのルーチンは、マクロであるかもしれないことに注意してください。
戻り値
これらの全ての関数は、成功して終了すれば OK を返します。そうでなければ、それらは ERR を返します。ウィンドウのパラメータを使用する関数は、それが null であるなら、エラーを返します。
- wgetn_wstr
- は、 wget_wch への関連の呼び出しが失敗したなら、エラーを返します。
移植性
これらの関数は、Single Unix Specification、バージョン 2 で説明されています。エラー条件は定義されていません。この実装は、ウィンドウポインタが null であるなら、または低レベル wget_wch 呼び出しが ERR を返すなら、ERR を返します。後者の場合は、他のデータのない ERR リターンは、ファイルの終りの状態として扱われ、返された配列は、null wchar_t が続く WEOF を含んでいます。X/Open curses は、 wchar_t の配列を渡すこれらの関数を文書化してますが、業者のすべては、 wint_t を使用してこれを実装しています。