curs_clear(3x) curs_clear(3x)
erase, werase, clear, wclear, clrtobot, wclrtobot, clrtoeol, wclrtoeol - curses ウインドウの一部または全部を消去する
# include <curses.h> int erase(void); int werase(WINDOW *win); int clear(void); int wclear(WINDOW *win); int clrtobot(void); int wclrtobot(WINDOW *win); int clrtoeol(void); int wclrtoeol(WINDOW *win);
erase と werase ルーチンはウインドウ内のすべての位置に空白を コピーして画面を消去します。 clear と wclear ルーチンは erase と werase に似ていますが、 これらは clearok も呼び出すため、ウインドウに対する 次の wrefresh 呼び出しで画面は完全に消去され、 初めから描き直されます。 clrtobot と wclrtobot ルーチンは、カーソル位置から 画面の最後までを消去します。 すなわち、ウインドウのカーソルより下のすべての行を消去し、 さらに、現在行のカーソル位置を含めてその右側をも消去します。 clrtoeol と wclrtoeol ルーチンは現在行のカーソル位置を 含めてその右側を現在行の終わりまで消去します。 消去で作成される空白は (wbkgdset で設定される) 現在の背景の 表示属性を持つようになります。 (訳注: wbkgdset … curs_bkgd(3x) 参照)
すべてのルーチンは成功のとき整数 OK を、失敗のとき ERR を 返します。 SVr4.0 マニュアルには「または、immedok がセットされていれば 負でない整数」と書かれていますが、これは間違いであると 思われます。 X/Open はエラーの条件を何も定義していません。 この実装では、ウインドウ・ポインタ引数を用いる関数は、 その引数がヌルのとき、エラーを返します。
erase, werase, clear, wclear, clrtobot, clrtoeol は マクロであるかもしれないことに注意してください。
XSI Curses standard, Issue 4 はこれらの関数を記載しており、 失敗のとき ERR を返すと明記していますが、エラーの条件を何も 指定していません。 curses の歴史的ないくつかの実装では、明文化されていない 機能として、 touchwin(stdscr) または clear(stdscr) とする ことで clearok(..., 1) と同等な処理ができました。 これは ncurses では動作しません。 この実装や Solaris のような他の実装では、werase() と wclear() による消去の後に現在位置を 0, 0 に設定します。 この事実は他の実装では明記されておらず、SVr4 のソースから 派生していない実装では正しくないかもしれません。 説明からは明らかでありませんが、多くの実装では 子ウインドウや派生ウインドウに対しても wclear の後に 画面を消去します。 次の wrefresh まで画面を消去したくない場合は、 代わりに werase を使ってください。
curses(3x), curs_outopts(3x), curs_refresh(3x), curs_variables(3x) curs_clear(3x)