term(5) FreeBSD 一般コマンドマニュアル

term

前のページ 上に戻る 次のページ

term



書式

       term


解説

       コ ン パ イ ル 済 み の  terminfo   属性記述はディレクトリ
       /usr/share/misc/terminfo の下にあります。 UNIX システム の
       巨 大 なディレクトリを線形探索するのを避けるため、 /c/name
       という形の 2 階層の命名規則が用いられます。 (ここで、 name
       は 端末の名前で、 cname の最初の文字です。) ですから、
       act4 は、 /usr/share/misc/terminfo/a/act4 というファイル名
       で見つけることができます。同じ端末を示す同義な名前は、同じ
       コンパイル済みファイルへの複数のリンクとして実装されていま
       す。

       この形式は、全てのハードウェアで同じになるように選ばれてい
       ます。 1 バイトが 8 ビット以上であることは仮定してい ま す
       が、 バ イトオーダや符号拡張の方式については仮定していませ
       ん。

       コンパイル済みのファイルは tic プログラムにより生成さ れ、
       setupterm   ルーチンにより読み取られます。このファイルは 6
       つの部分に分割されます。すなわち、ヘッダ、端末の名称、ブー
       ル値のフラグ、数値、文字列、および文字列テーブルです。

       ヘッダセクションはファイルの冒頭にあります。このセクション
       は、以下に示す形式の short 型の整数 6 個からなります。これ
       らの整数は (1) マジックナンバ (8 進で 0432)、 (2) 名称セク
       ションのバイト単位での大きさ、 (3) ブール値のセクション に
       含 まれるバイトの個数、 (4) 数値セクションに含まれる short
       型整数の個数、 (5) 文字列セクションに含まれるオフセット の
       個数 (short 型整数)、 (6) 文字列テーブルのバイト単位での大
       きさです。

       short 型の整数は 2 個の 8 ビットバイトに格納されています。
       最 初のバイトは値の最下位 8 ビットを、2 番目のバイトは最上
       位 8 ビットを含みます。(すなわち、値は 256*second+first と
       表 現されます。) 値 -1 は 2 バイト 0377, 0377 で表現されま
       すが、その他の負の値は構文違反です。一般に、この値は、ある
       ケーパビリティがその端末に備わっていないことを示します。こ
       の形式は VAX と PDP-11 のハードウェアに一致するものであ る
       こ と に ご 注意下さい (これらはリトルエンディアンマシンで
       す)。これに一致しないハードウェアのマシンでは、整数を 2 個
       のバイトとして読み込み、リトルエンディアン値を算出する必要
       があります。

       次に現れるのは端末名セクションです。これは、端末のさまざま
       な 名前を `|' 文字で区切って列挙した、 terminfo 記述の最初
       の行を含みます。このセクションは 1 個の ASCII NUL 文字で終
       端されます。

       ブール型のフラグは、フラグ 1 個につき 1 バイトを占めます。
       このバイトは、フラグが存在するかしないかに従って、0  か  1
       リティは存在しないものと解釈されます。

       文字列セクションもまた同様です。各ケーパビリティは上記の形
       式に従い、2 バイトの short 型整数として格納されます。値 -1
       は、ケーパビリティが存在しないことを意味します。それ以外の
       場合、値は、文字列テーブルの先頭からのオフセットとして解釈
       されます。 ^X や \c といった記法で示された特殊文字は、その
       記法を解釈した結果の形で格納され、印刷可能表現では格納され
       ま せん。パッド情報 $<nn> とパラメータ情報 %x は解釈を行な
       わずそのままの形で格納されます。

       最後のセクションは文字列テーブルです。これは文字列セクショ
       ンで参照されているすべての文字列ケーパビリティの値を含みま
       す。各文字列はナルで終端されています。

       setupterm ルーチンでは、ファイルに実際に存在するケーパビリ
       ティ と は 異 な る ものが予想され得ることにご注意下さい。
       setupterm が再コンパイルされた後にデータベースが更新される
       ( ファイルにいくつかの未知のエントリが含まれる結果になりま
       す)か、データベースが最後にコンパイルされた後にプログラ ム
       が再コンパイルされる (存在しないエントリを生む結果になりま
       す)両方の可能性があります。ルーチン setupterm は両方の可能
       性 に備える必要があります - これが、データ内に個数と大きさ
       が含まれている理由です。また、新しいケーパビリティは常に、
       ブール値、数値、文字列のケーパビリティリストのそれぞれの最
       後に追加しなければなりません。

       数値にリトルエンディアンを使用して他には自ら記述した書式を
       使用しても、商用 UNIX バージョンとのバイナリ terminfo エン
       トリの互換性を信用することは賢くはありません。問題は、少な
       く と も  3  種の terminfo (HP-UX AIX, OSF/1) が SVr1 後に
       System V がら分岐し、 System V と XSI の Curses 拡張と (バ
       イナリ書式において) 衝突する拡張ケーパビリティを文字列テー
       ブルに追加したことです。 terminfo ソースの互換性に関する詳
       細な議論は、 terminfo(5) を参照してください。

       例 として、Lear-Siegler ADM-3 の記述の 16 進数ダンプを示し
       ます。これは、ポピュラーですが、馬鹿な初期の端末です:

       adm3a|lsi adm3a,
               am,
               cols#80, lines#24,
               bel=^G, clear= 32$<1>, cr=^M, cub1=^H, cud1=^J,
               cuf1=^L, cup==%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
               home=^^, ind=^J,

       0000  1a 01 10 00 02 00 03 00  82 00 31 00 61 64 6d 33  ........ ..1.adm3
       0010  61 7c 6c 73 69 20 61 64  6d 33 61 00 00 01 50 00  a|lsi ad m3a...P.
       0020  ff ff 18 00 ff ff 00 00  02 00 ff ff ff ff 04 00  ........ ........
       0030  ff ff ff ff ff ff ff ff  0a 00 25 00 27 00 ff ff  ........ ..%.'...
       0040  29 00 ff ff ff ff 2b 00  ff ff 2d 00 ff ff ff ff  ).....+. ..-.....
       0050  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ........ ........
       0140  25 70 32 25 7b 33 32 7d  25 2b 25 63 00 0a 00 1e  %p2%{32} %+%c....
       0150  00 08 00 0c 00 0b 00 0a  00                       ........ .


       いくつかの制限: コンパイル済みのエントリは 4096 バイトを超
       え ることができません。名前フィールドは 128 バイトを超える
       ことができません。


関連ファイル

       /usr/share/misc/terminfo/*/*  コンパイル済みの端末ケーパビ
       リティデータベース


関連項目

       curses(3X), terminfo(5).



                                                          TERM(5)

ABELNET VPSサービス