curs_addch 3x

curs_addch(3x)                                           curs_addch(3x)




名前

       addch,  waddch,  mvaddch,  mvwaddch, echochar, wechochar
        - 文字と属性を curses のウィンドウに追加し、カーソルを進める


書式

       #include <curses.h>

       int addch(const chtype ch);
       int waddch(WINDOW *win, const chtype ch);
       int mvaddch(int y, int x, const chtype ch);
       int mvwaddch(WINDOW *win, int y, int x, const chtype ch);
       int echochar(const chtype ch);
       int wechochar(WINDOW *win, const chtype ch);


説明


文字の追加

        addch, waddch, mvaddch, mvwaddch の各ルーチンは、文字 ch を
       指定のウィンドウの現在位置に書き込んだ後、現在位置を進めます。
        これらは stdio(3)putchar に似ています。
         右マージンまで進んだ時は、  

       o   カーソルは自動的に次の行の先頭に折返します。

       o   現在のスクロール領域の一番下で、 scrollok が有効な
           場合は、スクロール領域が 1 行上へスクロールします。

       o   scrollok が有効でない場合は、続けて右マージン下方に
           文字を書きます。しかし、新しい行に折り返すことが
           できないので、エラーが返ります。

        ch がタブ、改行、復帰 (キャリッジ・リターン)、もしくは
       バックスペースの場合は、カーソルはウィンドウの中で適切に
       移動します。

       o   バックスペースはカーソルを 1 文字左へ移動します。
           ウインドウ左端では何もしません。

       o   復帰はカーソルを現在行のウインドウ左マージンに
           移動します。

       o   改行は clrtoeol を行った後、最後の行だった場合は
           ウインドウをスクロールし、カーソルを次の行の
           ウインドウ左マージンに移動します。

       o   タブは 8 桁ごとと想定します。
           タブ間隔は変数 TABSIZE を設定することで変更できます。

        ch が他の制御文字のときは、 ^X の形式で表示します。
        制御文字を追加した後に winch を呼び出すと、
       文字そのものではなく、制御文字の ^ 表現を返します。

        表示属性は文字と論理和 (OR) を取ることにより、 
       addch その他の関連関数に渡す文字引数と合成することができます。
       (ですから属性を含む文字列は inchaddch を使って、
       ある場所から他の場所へとコピーすることができます。)
        文字と論理和 (OR) を取る際に使えて便利な定義済みの
       表示属性定数については curs_attr(3x) のマニュアル・ページを
       参照してください。


文字のエコー

        echocharwechochar ルーチンは、 addch を呼び出した後に 
       refresh を呼び出す、または waddch を呼び出した後に wrefresh 
       を呼び出すことと同じです。
         1 つの文字だけが出力されるという知識は考慮され、そして、
       非制御文字に対しては、等価な関数よりもこれらのルーチンを
       使うことで相当な性能の向上がみられることがあります。

線図形処理

        addch 一族のルーチンで画面に罫線文字等を加えるために
       以下の変数 (訳注: 定数か) が使えるかもしれません。
        acsc 機能項目が端末固有の代替を定義していない場合、
       または端末とロケールの設定が Unicode を要求するのに
       ライブラリが Unicode を使うことができない場合、下表の
       デフォルト文字が使われます。

        名前は VT100 の命名法から取られています。

       名前          デフォルト 説明
       --------------------------------------------------
       ACS_BLOCK      #         solid square block 正方形ボックス
       ACS_BOARD      #         board of squares 矩形のボード
       ACS_BTEE       +         bottom tee 下ティー
       ACS_BULLET     o         bullet 黒丸
       ACS_CKBOARD    :         checker board (stipple) チェッカーボード(点描)
       ACS_DARROW     v         arrow pointing down 下向き矢印
       ACS_DEGREE     '         degree symbol 度記号
       ACS_DIAMOND    +         diamond ダイヤモンド
       ACS_GEQUAL     >         greater-than-or-equal-to 以上(不等号)
       ACS_HLINE      -         horizontal line 横線
       ACS_LANTERN    #         lantern symbol ランタン記号
       ACS_LARROW     <         arrow pointing left 左向き矢印
       ACS_LEQUAL     <         less-than-or-equal-to 以下(不等号)
       ACS_LLCORNER   +         lower left-hand corner 左下隅
       ACS_LRCORNER   +         lower right-hand corner 右下隅
       ACS_LTEE       +         left tee 左ティー
       ACS_NEQUAL     !         not-equal 等号否定
       ACS_PI         *         greek pi ギリシャ語のパイ
       ACS_PLMINUS    #         plus/minus プラス/マイナス
       ACS_PLUS       +         plus 十字形
       ACS_RARROW     >         arrow pointing right 右向き矢印
       ACS_RTEE       +         right tee 右ティー
       ACS_S1         -         scan line 1 走査線1
       ACS_S3         -         scan line 3 走査線3
       ACS_S7         -         scan line 7 走査線7
       ACS_S9         _         scan line 9 走査線9
       ACS_STERLING   f         pound-sterling symbol ポンド記号
       ACS_TTEE       +         top tee 上ティー
       ACS_UARROW     ^         arrow pointing up 上向き矢印
       ACS_ULCORNER   +         upper left-hand corner 左上隅
       ACS_URCORNER   +         upper right-hand corner 右上隅
       ACS_VLINE      |         vertical line 縦線


返り値

        すべてのルーチンは、上のルーチン説明で特記して
       いないかぎり、失敗すると整数 ERR を、成功すると OK 
       ( SVr4 マニュアルは「 ERR 以外の整数値」としか
       指定していません) を返します。


         mv で始まる関数は、最初に wmove を使用してカーソルを
       移動し、位置がウィンドウの外だった場合、またはウィンドウ
       ポインタがヌルの場合にエラーを返します。


注意

        addch, mvaddch, mvwaddch, echochar はマクロであるかも
       しれないことに注意してください。


移植性

         これらすべての関数は、 XSI Curses standard, Issue 4 に
       記述されています。POSIX ロケールでは、罫線素片文字に対して
       指定されたデフォルトが適用されます。

        X/Open Curses は、 ACS_ の定義は char 型定数だと明言して
       います。
        ワイド文字用の実装には (curs_add_wch(3x) を参照) 、
       これに類似した cchar_t 型定数の WACS_ の定義があります。

        いくつかの ACS 識別子 (ACS_S3, ACS_S7, ACS_LEQUAL, 
       ACS_GEQUAL, ACS_PI, ACS_NEQUAL, ACS_STERLING) は、
       公に発表されたどの System V にも記述されていません。
        しかし、公に利用可能な多くの terminfo は そのキー文字 
       (pryz{|}) が埋め込まれている中に acsc 文字列を含んでおり、
       それらの文字を説明する間接的な表が明らかにされています。
        これらの ACS で始まる名前は ncurses(3x) のために
       考案されたものです。

        ACS_WACS_ 定数に対して表示される値は下記に依存します。

       o   ライブラリの構成、つまり ncurses に対して ncursesw 。
           後者は Unicode を表示することができますが、
           前者はできません。

       o   locale が UTF-8 エンコードを使うかどうか。

        ある場合には、端末は UTF-8 を使わないと罫線文字等を
       表示することができません。( ncurses(3x)NCURSES_NO_UTF8_ACS の議論を参照してください。)

        変数 TABSIZE は curses のいくつかのバージョンで
       実装されていますが、 X/Open curses の一部ではありません。

        ch が復帰 (キャリッジ・リターン) のとき、カーソルは
       ウインドウの現在行の始めに移動します。
       これは他の実装にも当てはまりますが、明文化されていません。


関連項目

       curses(3x),  curs_attr(3x), curs_clear(3x), curs_inch(3x),
       curs_outopts(3x),  curs_refresh(3x),   curs_variables(3x),
       putc(3).

         ワイド文字用ライブラリ (ncursesw) の対応する関数群は 
       curs_add_wch(3x) で説明しています。



                                                         curs_addch(3x)