第 13 章 Terminfo データベースおよび端末装置

対話式 COBOL アプリケーションで、ACCEPT 文、および DISPLAY 文を使用して全画面表示入力、および出力を行うには、端末装置を高度に使いこなす必要があります。UNIX では、ほとんどすべてのタイプの端末装置を接続することができ、異なる端末を処理できるよう、terminfo データベースが提供されます。この章では、Terminfo データベースがご利用の COBOL システムでどのように使用されるかについて説明します。また、COBOL で特殊な端末の機能を使用する場合に、データベースに必要な詳細情報についても説明します。この章では、Micro Focus terminfo ユーティリティ mftic 、および mfinfocmp についても説明します。

『プログラマーズガイド − アプリケーション作成』『デバイス操作』の章では、一般的に端末装置を含む装置について説明しています。この章では、UNIX 用端末装置の詳しい使用方法、およびこれらの装置の構成を説明します。

13.1 概要

端末は、標準的な COBOL プログラムで使用する装置の中で、最も重要で、複雑な装置です。端末は次の 2 通りの方法で使用することができます。

書式設定されていない画面 I/O では、COBOL システムでは特別なアクションは実行されません。単に UNIX の論理装置 stdinstdout、および stderr (『プログラマーズガイド − アプリケーション作成』『デバイス操作』の章を参照してください) が使用されるのみです。これらはオペレーティングシステムにより、端末から、または端末にリダイレクトされます。

書式設定済みの画面 I/O の場合は、COBOL システムは次の 2 つのレベルのアクションを実行する必要があります。つまり、論理レベルと物理レベルのアクションです。Adis モジュール (『Programmer's Guide to Creating User Interfaces』『Adis』 の章を参照してください) は、高レベルの COBOL 条件を、論理的で低レベルの端末に依存しない操作に翻訳します。画面処理モジュールは、これらの論理操作を、追加された端末で必要な、端末に依存する物理的な文字列やエスケープシーケンスに翻訳します。画面処理モジュールは、端末からの応答をすべて論理的な形式に翻訳し、翻訳した結果を Adis モジュールに返します。

論理形式と物理形式のマッピングを行うには、画面処理モジュールに、追加された端末のタイプ、その端末タイプの能力、およびすべての I/O アクティビティの物理形式を指定する必要があります。UNIX では、この情報を提供する標準の方法があります。環境変数、 TERM に端末のタイプ名が示されていて、その端末タイプの詳細情報は UNIX システムのデータベース、terminfo に格納されています。

13.1.1 システムの Terminfo

ご利用の COBOL システムは、標準の UNIX システム V の terminfo の形式、および構造体を認識して使用することができます。ただし、非標準の UNIX ベンダ固有の拡張機能はすべて無視されます。UNIX システムの中には、標準の terminfo 形式、および構造体を使用しないものもあります。この場合、ご使用の COBOL システムは、次に説明するような、移植性のある別の UNIX Terminfo データベースを使用します。

システムの Terminfo データベースは、ほとんどのプラットフォームで /usr/lib/terminfo に置かれます。Terminfo データベースは、すべてのシステムアプリケーション、たとえば典型的な例として、システムエディタ、 vi などで広く使用されます。特殊プロセスで、別の共通 Terminfo データベースを使用する必要がある場合は、環境変数、 TERMINFO に場所を指定して、使用するデータベースを選択することができます。

端末の詳細情報は、非 COBOL アプリケーションで共通に使用できるよう、Terminfo データベースに格納されています。Terminfo データベースは、COBOL アプリケーションで使用できる形式にすることができますが、矛盾することがたびたびあります。COBOL 端末の I/O は、一般的に多くの UNIX アプリケーションよりもより複雑で、Terminfo データベースの最低条件も、COBOL 端末の I/O の方が厳しくなります。端末情報の中には曖昧な情報があり、Terminfo データベースと、COBOL システムでは解釈が異なる場合があります。更に、非 COBOL アプリケーションを構成するために Terminfo データベースが修正されることがあるため、COBOL アプリケーションでの使用に適さなくなります。

13.1.2 移植性のある COBOL の Terminfo

この COBOL システムでは、移植性のある UNIX Terminfo データベースが使用でき、数種類の端末の情報が格納されたデータベースが 1 つ提供されています。書式は UNIX の仕様に基づいていますが、UNIX ベンダ固有の部分は省略されています。このデータベースは、システムのデータベースに追加する、またはそのかわりのデータベースとして COBOL アプリケーションで使用できます。システム COBOL Terminfo データベースは、COBOL システムのディレクトリ $COBDIR の、terminfo ディレクトリに置かれています。特殊な COBOL プロセスで、別の Terminfo データベースを使用する必要がある場合は、環境変数 COBTERMINFO に場所を指定して、使用するデータベースを選択することができます。

移植性のある UNIX Terminfo データベースは、ユーティリティ mftic、および mfinfocmp を使用して維持することができます。これらのユーティリティについては、この章のこれ以降で説明します。

13.1.3 COBOL の画面処理条件

COBOL でフォーマット済みフィールドの入出力が端末上で行われる場合、多くの UNIX アプリケーションと比べ、高度な画面処理が実行されます。端末に特定の機能があり、それが terminfo のエントリに記述されている必要があります。このエントリが TERM で参照されるため、それができない場合は、ランタイムシステムでランタイムエラーが発生します。

ご使用の COBOL システムは、端末を最適化して使用しようとし、端末に terminfo に記述されている使用可能な機能があれば、それらを使用します。端末の、必須、および省略可能な terminfo 詳細情報に関しては、この章で説明します。

13.2 端末の特別な機能

端末の機能には、Ctrl キーや Alt キーをサポートするなどのように、Terminfo データベースから自動的に指定されるものがあります。また、広域端末モードなどの様に、Terminfo データベースから指定はされても、標準の COBOL の画面 I/O ではないものもあります。これらの特別な機能については、この章のこれ以降で説明します。

13.3 移植性のある Terminfo データベースおよびシステムの Terminfo データベースの検索

COBOL システムは 2 つのタイプの Terminfo データベース、つまり移植性のある COBOL の Terminfo とシステムの Terminfo を認識できます。システムで、端末の詳細情報が必要になると、環境に指定されているそれぞれのデータベースが検索されます。システムが必要とする端末の詳細情報が検出されると、検索は終了します。

COBOL システムでは、最初に COBOL 固有の terminfo ファイルが検索され、これが検出されない場合は、システムの Terminfo ファイルが検索されます (次の手順を参照してください)。vi のような非 COBOL のユーティリティでは、システムの Terminfo ファイルのみが検索されます。

個々の端末に関して、COBOL アプリケーションと、vi のような非 COBOL アプリケーションで、terminfo ファイルに対し、異なる要求を行うことができます。異なるエントリを要求できるだけでなく、異なるバイナリ形式を要求することができます。COBOL アプリケーションでは、移植性のある形式が要求され、非 COBOL アプリケーションでは、システム固有の形式が要求されるなどです。

共通の terminfo ファイルと、COBOL 固有の terminfo ファイル (このシステムでは例が提供されています) は、別の場所に置いて区別する必要があります。また、実行時には、COBOL 固有のファイルは環境変数、 COBTERMINFO (付録 『環境変数』を参照してください) で、システムの、または共通の terminfo ファイルは TERMINFO で適切に設定する必要があります。これらが設定されると、COBOL システムは、terminfo ファイルを次の手順で検索します。

  1. COBTERMINFO 環境変数が設定されていない場合は、$COBDIR/terminfo が設定されたものとして動作します。

  2. COBTERMINFO が設定されると、この環境変数が読み取られます。環境変数に Terminfo データベースへの複数のパスが指定されている場合は、コロン区切りで 1 つのパスとして解釈されます。いずれかのパスで必要なファイルが検出されると、(左から右に解析されます) 検索されたファイルが使用されます。

  3. TERMINFO 環境変数が設定されると、この環境変数が Terminfo データベースへのパスとして使用されます。必要なファイルが検出されると、それが使用されます。

  4. デフォルトのシステムの Terminfo データベースは通常、 /usr/lib/terminfo にあります。これを Terminfo データベースへのパスとして使用してください。 この場所にファイルがあれば、そのファイルが使用されます。

  5. ファイルが見つからない場合は、エラーが返されます。

13.4 端末装置

UNIX 環境では、端末定義がシステムのデータベースに格納されているので、ほとんどすべてのタイプの端末がサポートされます。このデータベースには、Adis が作動するのに必要な、端末の詳細情報が十分に格納されている必要があります。

Adis では、端末の I/O に、標準の入出力装置インターフェイスが使用されます。そのため、このような端末の I/O はリダイレクトすることができますが、端末装置以外のファイルからの標準入力をリダイレクトしてはいけないという制約があります。

次に有効な例を示します。

cobrun prog < `tty` >`tty`

(正しい引用符、 ` を使用してください) これに対して、通常のファイル、または /dev/null からの入力をリダイレクトするのは正しくありません。これを行うと、実行時エラーになります。

13.4.1 画面処理条件

COBOL ランタイムシステムには、Terminfo データベースが必須です。このデータベースを利用して、Adis モジュールの動作に必要な、様々な端末の詳細情報を取得します。ランタイムシステムで必須と判断される詳細情報があります。これらが使用できない場合は、実行時エラーが返されます。その他の詳細情報はすべて、省略可能と判断されます (大半を利用し、残りは無視します)。次の表で、COBOL システムで認識される、terminfo 端末の詳細情報内のエントリを一覧表示します。システムの Terminfo データベースに関する詳細と、端末の機能の指定方法に関しては、ご利用の UNIX システムのマニュアルを参照してください。

13.4.2 必須エントリ

次のエントリは、Micro Focus COBOL システムを正常に動作させるために必須のエントリです。アスタリスク (*) 付きのエントリは、端末タイプに応じて適切に設定する必要があります。

エントリ
簡略記号
自動マージン * am
行末までクリア el
画面をクリア clear
画面の最後までクリア ed
カーソルアドレス (行、列) の指定 cup
カーソルを 1 行下へ移動 cud1
ホームカーソル home
カーソルを左へ移動 cub1
カーソルを右に移動 cuf1
カーソルを 1 行上に移動 cuu1
無効な復帰改行を無視 * xen1
カーソルキーの入力 kcud1, kcub1, kcuf1, kcuu1
ファンクションキー
f1 から f63 の入力 *
kf1 から kf63
ホームキー、次ページキー、
前ページキー、エンドキー、バックタブキー、
挿入キー、削除キー、および
フィールドの最後までクリアキーの入力 *
khome, knp, kpp, kend, kcbt, kich1,
kdch1, kel
属性モードの終了 sgr0
列数 ** cols
行数 ** lines
Xon/xoff * xon

** 行数、および列数は、X 端末を使用している場合は動的に読み取られます。これらは、環境変数 LINES、および COLUMNS を使用して上書きできます。詳細は、『環境変数』を参照してください。

13.4.3 省略可能なエントリ

次のエントリは、特別なタイプの端末で必要に応じて使用します。ただし、Micro Focus COBOL システムでは、これらのエントリは必要ありません。

エントリ
簡略記号
ベル bel
キャリッジリターン cr
ca モードの入力 smcup
ca モードの終了 rmcup
キーパッド転送モードから抜ける rmkx
キーパッドの転送 smkx
スタンドアウトモード (適切な場合) での正常な転記 msgr

端末によっては、端末が正常に動作するために、smcup および rmcup が必要なことがあります。

13.4.3.1 強調表示

端末に追加属性がある場合は、次のエントリが使用されます。アスタリスク (*) 付きのエントリは、端末タイプに応じて適切に設定する必要があります。

エントリ
簡略記号
点滅モードの入力 * blink
太字モードの入力 * bold
淡色表示モードの入力 * dim
反転モードの入力 * rev
下線モードの入力 * smul

端末に追加属性がない場合は、次のエントリが必要です。

エントリ
簡略記号
属性の設定 sgr

強調表示は COBATTR 環境変数を使用しても有効にすることができます。詳細は、付録、『環境変数』を参照してください。

13.4.3.2 パフォーマンスの考慮

次の省略可能なエントリを追加し、特定の状況での画面表示のパフォーマンスを 向上させることができます。

エントリ
簡略記号
パラメータで指定された行数、カーソルを下に移動 cud
パラメータで指定された列だけカーソルを左に移動 cub
パラメータで指定された列だけカーソルを右に移動 cuf
パラメータで指定された行数、カーソルを上に移動 cuu

次のエントリがある場合は、スクロール領域を使用して、画面の領域をスクロールすることができます。これにより、このような操作の速度が飛躍的に向上します。

エントリ
簡略記号
スクロール領域の変更 csr
行挿入 il1
行削除 dl1

13.4.3.3 ワイド端末モード

ワイド端末モードを使用する場合は、次のいずれかのエントリで、列数を設定するシーケンスを指定してください。

エントリ
簡略記号
初期化文字列 1 is1
初期化文字列 2 is2
初期化文字列 3 is3
リセット文字列 1 rs1
リセット文字列 2 rs2
リセット文字列 3 rs3

13.4.3.4 行の描画

端末に追加属性がある場合は、次のエントリが使用されます。

エントリ
簡略記号
代替え文字集合使用可能 enacs
代替え文字集合の文字の指定 acsc
代替え文字集合モード開始 smacs
代替え文字集合モード終了 rmacs

端末に追加属性がない場合は、次のエントリが必要です。

エントリ
簡略記号
属性の設定 sgr

ご使用の端末に対し、適切な代替文字集合の文字を指定しない場合、または、ご使用の端末で、完全なセットが利用できない場合は、通常の ASCII 文字が、紛失行の描画文字のかわりに使用されます。

13.4.3.5 カラー

Tektronics のカラー操作方式のみが使用できます。たとえば、ANSI のカラーの端末では、Tektronics 方式が使用されています。次のエントリが必要です。

エントリ
簡略記号
カラー数 colors
前景の設定 setf
背景の設定 setb
オリジナルカラー oc
オリジナルペアー op

oc と op は、どちらか一方のみを指定する必要があり、このカラーをデフォルトのカラーとして設定し直す必要があります。

mfinfocmp ユーティリティを使用して、se エントリがご利用の Terminfo データベースに登録されていることを確認してください。詳細は、この章の『Terminfo Lister (mfinfocmp)』の項を参照してください。

オペレーティングシステムのユーティリティ tic を実行して、必要に応じて、ご使用の Terminfo データベースにエントリを追加することができます。追加方法に関する詳細は、ご使用のオペレーティングシステムのマニュアルを参照してください。または、mftic ユーティリティを使用して、COBOL 固有の端末の詳細情報の新規セットを、COBOL 固有の Terminfo データベースに作成することができます。詳細は、この章の『Terminfo コンパイラ (mftic)』の項を参照してください。


注 : terminfo に定義されている属性を使用しても、ご使用の端末でその属性が認識できない場合は、その属性は表示されず、エラーメッセージも表示されません。

ご利用の端末で、属性を格納する文字の場所を使用している場合は、ACCEPT 文、または DISPLAY 文内の属性が、すべてランタイムシステムで無効にされます。これは、マジック cookie の故障をサポートする端末、つまり、端末の terminfo ファイルに xmc が定義されている端末で発生します。


13.5 特殊な端末の機能

以降の項では、特殊な端末について説明します。

13.5.1 Wyse 端末サポート

ご使用の Micro Focus COBOL システムは、Wyse 端末などの、エスケープシーケンスの前に、エスケープ (0x1b) 以外の文字を指定する必要がある端末をサポートします。カーソルやファンクションキーはすべて操作可能です。

13.5.2 コントロールキーと Alt キーのサポート

ほとんどの UNIX 端末では、Alt キー、Ctrl キー、およびその他のキー (Shift キーなど) を単独て押しても認識されません。そのため、代替キーが用意されています。Alt キーを押す、または放すことを示すには、/a と入力します。Ctrl キーを押す、または放すことを示すには、/c と入力します。

スラッシュ文字を使用する場合は、スラッシュ文字を // のように 2 回入力します。このようなキーボードマッピングに関するヘルプを表示するには、/m と入力します。キーストロークのマッピングに関しては、付録『UNIX のキー割り当て一覧』を参照してください。

ご利用の UNIX システムで、Alt キー、および Ctrl キーをサポートしている場合 (たとえば SCO Open Desktop のバージョン 2.0 以降) は、detect_alt_ctrl 実行時構成可能変数オプションを使用してください。detect_alt_ctrl に関する詳細は、『実行時の構成』の章を参照してください。

13.5.3 ワイド端末モード

この機能は COBOL でのみ使用できます。この機能を使用すると、ご使用の端末でワイドモードサポートされている場合に、このモードが使用できます。ワイドモードがサポートされているのは、たとえば、132 列モードが選択できる vt100 形式の端末などです。画面出力の通常の方法は、ANSI DISPLAY、Adis DISPLAY、および cobprintf() 呼び出しも含めて、すべて使用できます。詳細は、『Programmer's Guide to Creating User Interfaces』『Adis』 の章を参照してください。カーソルのアドレス指定は現在の端末のモードと矛盾しないようにする必要があります。たとえば、Adis を使ってカーソルを 100 列目に置くように指定しても、80 列モードではこれは不可能です。この場合、通常モードからワイドモードへの自動切り換えもできません。ワイドモードは、次に示すように明示的に設定する必要があります。

この機能を使用するには、作成したプログラムの作業場所節に、次のレコードが必要です。

01 mode-number pic x comp-x.

また、実行時に次の方法で呼び出す必要があります。

call "cobtermmode" using mode-number

mode-number には次の値のいずれかを指定します。


意味
0 標準端末モード。標準の端末の terminfo ファイルが使用されます。
1 ワイド端末モード。標準の端末名の最後に -w が追加された名前の terminfo ファイルが使用されます。

呼び出しが正常に終了すると、RETURN-CODE の値がゼロに設定されます。呼び出しに失敗すると、ゼロ以外の値に設定されます。たとえば、要求した terminfo ファイルが見つからない場合はゼロ以外の値になります。terminfo の検索方法に関しては、これ以前の『移植性のある Terminfo データベースおよびシステムの Terminfo データベースの検索』の項で説明しています。

呼び出しが正常に行われると、画面処理システムは初期化され (まだ初期化されていない場合)、次のように動作します。

画面処理システムが初期化されると、ANSI DISPLAY 文なども含むすべての DISPLAY 文で、新しい画面処理システムが使用されます。

呼び出しに失敗すると、RETURN-CODE には 0 以外の値が設定され、画面は変更されません。RETURN-CODE は次のように設定されます。


意味
0 操作成功。
1 terminfo ファイルが見つからない、ファイルが読み取れない、ファイルが破損している、または、メモリが足りない。
2 必要な機能のうち 1 つ以上が terminfo ファイルにエントリされていない。
3 この環境では、必要なコードがサポートされていない。

cobtermmode 呼び出しを使用する場合は、次のことに注意してください。

端末の状態を切り換えるには、次の 6 つの terminfo の機能を使用します。

完全名
省略名
init_1string is1
init_2string is2
init_3string is3
reset_1string rs1
reset_2string rs2
reset_3string rs3

これらに関する詳細は、『AT&T UNIX System V Interface Definition (SVID)』で説明されています。使用方法は次のようになっています。

アプリケーションを実行する際には、端末のモードと、TERM の端末名で指定された terminfo が適合するようにしてください。

13.6 移植性のある Terminfo のユーティリティ mftic および mfinfocmp

UNIX オペレーティングシステムを使用すると、システムに接続されているすべての端末からの端末 I/O を、アプリケーションで処理できます。これは、システムに接続されている端末のタイプや機能が異なる場合でも可能です。これを実現するため、UNIX オペレーティングシステムでは、端末のタイプのデータベースである、Terminfo データベースが使用されます。このデータベースには、端末タイプ毎のファイルが含まれています。それぞれの terminfo ファイルには、ファイル名と同じ名前の端末タイプの機能の詳細情報が格納されています。詳細情報は、ご使用のオペレーティングシステムのマニュアルの term(4) に示される形式で翻訳された、機械語で格納されます。この詳細情報には、最初に一般的な部分が記載され、次にベンダ固有の部分が記載されます。

各ベンダの UNIX で一般的に提供されるのは、terminfo の「ソース」ファイルに指定された判読可能なパラメータから terminfo ファイルを作成するユーティリティ、 tic、と、翻訳された terminfo ファイルから terminfo ソースファイルを作成するユーティリティ、 infocmp です。どちらのユーティリティでも、terminfo ファイルはベンダ固有の形式とされます。

この COBOL システムでは、Terminfo データベースを使用して、ユーザアプリケーションで要求されるすべての端末 I/O を処理します。COBOL システムでは、terminfo ファイルの一般的な部分を使用し、ベンダ固有の部分は無視します。この COBOL システムでは、指定できる端末の機能のうち、一部のみを使用します。この中には必須の機能もあれば、省略可能な機能もあります。

ベンダの異なる UNIX を実行している、端末タイプが同じ 2 つのマシンを追加し、同じ COBOL アプリケーションを実行できます。この COBOL システムでは、どちらのマシンでも同じ terminfo ファイルが使用できます。ただし、UNIX ベンダが、terminfo ファイルの一般的な部分が標準に準拠していない場合や、terminfo ファイルに他の UNIX ベンダと矛盾するベンダ固有の部分を追加した場合は、この機能は使用できなくなります。

システムユーティリティ、 tic、および infocmp のかわりに、COBOL システムユーティリティ、 mftic および mfinfocmp を使用すると、この問題を解決することができます。どちらの COBOL ユーティリティも次の 2 種類のモードで操作できます。

Micro Focus モードでは、terminfo ファイルの形式は、標準の一般的な部分だけで構成されているものとして扱われ、この COBOL システムで認識できる機能のみがエントリされているものとして動作します。この形式は、異なるバージョンの UNIX 間で完全に移植性がありますが、非 COBOL のアプリケーションで必要とされる機能のすべては定義できない可能性があります。

UNIX ベンダ固有のモードでは、terminfo の形式が、システムの tic、および infocmp ユーティリティと完全に互換性があるものとして動作します。この形式は、一般に、バージョンの UNIX 間では移植性はありませんが、非 COBOL アプリケーションで使用できるすべての機能を定義することができます。

terminfo ソース、およびバイナリ形式に関する詳細は、ご利用のオペレーティングシステムのマニュアルを参照してください。マニュアルには、ご利用の環境でサポートされる機能の一覧も表示されています。Micro Focus COBOL システムで必要な、端末の必須の機能に関しては、この章で前述の『画面処理条件』の項を参照してください。

13.6.1 Terminfo コンパイラ (mftic)

terminfo コンパイラ、mftic は、terminfo ソースファイルを、ソース形式からコンパイル済み形式に翻訳します。このコンパイル済み形式のファイルが Terminfo データベースに格納されます。このデータベースの検索方法に関しては、『検索順序』 の項を参照してください。

mftictic と互換性があります。デフォルトでは、mftic を使用すると、Micro Focus の一般形式で terminfo バイナリが作成されます。mftic では、システム形式と同じ形式でも terminfo バイナリを作成することができます。

mftic は、tic 同様、use= リンクの概念をサポートします。ソースファイルに use=name エントリがあると、mftic は現在の端末の詳細情報に、端末の name の詳細情報を追加します。mftic はまず、現在のソースファイルで name を検索し、見つからない場合はコンパイル済みの Terminfo データベースで検索します。それでも name が見つからない場合は、mftic はエラーを報告し、停止します。mftic は、必要な場合は再帰的に use= リンクを検索します。

mftic を起動するには、コマンド行で次のように入力します。

 mftic [-vn] [-c] [-m] [-S] filename

パラメータの内容は次の通りです。

-vn コンパイラに詳細メッセージを出力させるかどうかを指定します。n の値には次のいずれかを設定します。
0 - メッセージは出力しない
1 - 詳細メッセージを出力する
-c terminfo バイナリを作成しません。このオプションを使用すると、mftic では入力されたソースファイルのエラーチェックのみが実行されます (use= リンクのエラーチェックは行われません)。
-m terminfo バイナリを、UNIX ベンダ固有の形式ではなく、Micro Focus 形式で作成します。これらの形式に関しては、この章のこれ以前に、『移植性のある Terminfo のユーティリティ mftic および mfinfocmp』の項で説明しています。これはデフォルトで設定されています。
-S 入力されたバイナリを、Micro Focus 形式ではなく、UNIX ベンダ固有の形式として扱います。
filename コンパイルする terminfo ソースファイルの名前を指定します。

13.6.2 Terminfo Lister (mfinfocmp)

mfinfocmp ユーティリティは、次の機能のどちらかを実行します。

バイナリファイルはコンパイルし、Terminfo データベースに格納する必要があります。-A オプション、または -B オプションが設定されていない場合のこのデータベースの検索方法に関する詳細は、『検索順序』の項を参照してください。

mfinfocmp を起動するには、コマンド行で次のように入力します。

mfinfocmp [-1] [-m] [-w n] [-A dir] [-B dir] [-S] 
    [filename [...]]

パラメータの内容は次の通りです。

-1 (数字の 1です。 L の小文字ではありません) 結果を 1 列で出力します。
-w n 出力の幅を n 文字に制限します。n のデフォルトの値は 60 です。
-m 入力されたバイナリファイルを Micro Focus 形式として扱います。これは、mftic に -m オプションを設定した場合に作成されるファイル形式です。システム形式の terminfo ファイルを一覧表示する場合にこのオプションを使用した場合は、定義されない結果となります。これはデフォルトの設定です。
-A dir
-B dir
2 つ以上のファイルを比較する場合に、Terminfo データベースの場所を変更します。-A オプションを指定すると、最初のファイルのデータベースの場所が、指定したディレクトリに変更されます。-B オプションを指定すると、2 番目以降のファイルのデータベースの場所が指定したディレクトリに変更されます。(バイナリファイルは、つねにデータベースと同じディレクトリに常駐しているわけではありませんたとえば、vt100 端末の詳細情報が記述されているファイルは通常、データベースのサブディレクトリ、 v に常駐しています。)
-S 入力されたバイナリを、Micro Focus 形式ではなく、UNIX ベンダ固有の形式として扱います。
filename 一覧表示する、または比較する terminfo バイナリファイルの名前を指定します。実行される機能は、コマンド行に指定するファイル数によって決まります。次に例を示します。

ファイルを指定しないと、mfinfocmp は TERM 環境変数に設定されているファイル名を取得し、そのファイル名の terminfo ソースの詳細を一覧表示します。

ファイルを 1 つ指定すると、mfinfocmp は、指定されたファイルの terminfo ソースの詳細を表示します。

2 つ以上のファイルを指定すると、mfinfocmp は、最初のファイルと 2 番目以降に指定されたファイルを比較します。

13.6.2.1 検索順序

Terminfo データベースに格納するコンパイル済み形式の terminfo ファイルは、mftic を使用して作成し、mfinfocmp を使用して一覧表示します。デフォルトでは、データベースが置かれているディレクトリは、次の検索順序で検索されます。ただし、オプションを指定してデフォルトの設定を上書きすると、このディレクトリを変更することができます。

  1. COBTERMINFO 環境変数が設定されている場合は、この変数の内容がデータベースのディレクトリ名になります。

  2. TERMINFO 環境変数が設定されている場合は、この変数の内容がデータベースのディレクトリ名になります。

  3. どちらの環境変数も設定されていない場合は、デフォルトのディレクトリが使用されます。デフォルトのディレクトリは、-m オプションが指定されているかどうかによって異なります。-m が指定されていると、ディレクトリ $COBDIR/terminfo が使用され、設定されていない場合は /usr/lib/terminfo が使用されます。-m オプションに関する詳細は、この章のこれ以前にある『Terminfo コンパイラ (mftic)』、および 『Terminfo Lister (mfinfocmp)』の項を参照してください。

注 : Micro Focus 形式の terminfo ファイルが $COBDIR/terminfo 以外のディレクトリのデータベースに保存されている場合は、COBOL アプリケーションの実行時に COBTERMINFO 環境変数を使用して (TERMINFO 環境変数ではなく) このディレクトリを検索する必要があります。そうでない場合は、COBOL アプリケーション、または非 COBOL のアプリケーションのどちらかが正しく実行されない可能性があります。



Copyright © 2005 Micro Focus International Limited. All rights reserved.