mkcatdefs - メッセージ・ソース・ファイルをプリプロセスする

形式

mkcatdefs [–h] MsgFile [SourceFile … ]

説明

mkcatdefs は、メッセージ・ソース・ファイル を gencat ユーティリティーへの入力とするためにプリプロセスします。

SourceFile は、シンボル ID を含むメッセージ・ファイル (通常 .msf 拡張子を持つ) です。SourceFile を指定しなかった場合、mkcatdefs は標準入力 (stdin) を読み取ります。mkcatdefs は、次の 2 つの出力を作成します。
  • MsgFile.h には、ユーザーのシンボル ID を mkcatdefs が割り当てるセット番号とメッセージ番号に置き換えるステートメントが含まれています。メッセージを参照するためには、このヘッダー・ファイルを アプリケーションに組み込む必要があります。
  • 出力メッセージ・ソース・ファイル。シンボル ID の代わりに番号をもつ メッセージ・ソース・データが標準出力に送られます。この出力 は gencat ユーティリティーへの入力として使用できます。この標準出力は、リダイレクトを使用してファイルに 保管するか、mkcatdefs の出力を gencat ユーティリティー にパイプ接続するか、どちらかを行う必要があります。

オプション

–h
MsgFile.h ファイルの生成を抑止します。このフラグは mkcatdefs への最初の引数である必要があります。

詳細説明

SourceFile の形式は、以下のように定義されます。すなわち、メッセージ・ソース行のフィールドは、1 桁目で開始される必要があり、1 桁の ブランク文字で分離されます。その他のブランク文字はどれも後続のフィールドの一部と見なされます。
$quote
gencat を参照してください。
$set symbolic_name
symbolic_name は、メッセージのこのセットを参照する ためにアプリケーション・プログラムで使用されるセット ID を指示しま す。この名前は最大 255 文字の長さにでき、任意の英数字と下線文字を含められますが、非数値文字で開始する必要があります。セット ID に続くストリングはどれもコメントとして扱われます。
$ comment
gencat を参照してください。
Symbolic_Name message_text
Symbolic_Name は、メッセージのこのメッセージを参照するためにアプリケーション・プログラムで使用されるメッセージ ID を指示 します。この名前は最大 255 文字の長さにでき、任意の英数字と下線文字を含められますが、非数値文字で開始する必要があります。symbolic_name を message_text と分離する 単一のブランク文字が必要です。引用文字が定義されないと、分離ブランク文字の後のブランク文字はどれも メッセージ・テキストの一部と見なされます。 message_text を指定する方法の詳細は 、gencat を参照してください。

comp1.msf および comp2.msf メッセージ・ソース・ファイルを処理し、出力を comp.msg ファイルに置くには、以下を入力します。
mkcatdefs comp comp1.msf comp2.msf >comp.msg
ソース・メッセージ・ファイルは、以下のようになります。
$ This is the message source file for COMP1
$
$quote " Use double quotation marks to delimit message text
$set MSFAC1  Message set for component comp1
$
SYM_FORM "Symbolic identifiers can only contain alphanumeric ¥
characters or the _ (underscore character)¥n"
SYM_LEN  "Symbolic identifiers cannot be more than 65 characters long¥n"
5 "You can mix symbolic identifiers and numbers¥n"
生成された comp.h ファイルは、以下のようになります。
#ifdef  _H_COMP_MSG
#include <limits.h>
#include <nl_types.h>
/*
 Time stamp: 1994 137 19:09 UTC
*/
/* The following was generated from comp1.msf. */
/* definitions for set MSFAC1 */
/* The following was generated from comp2.msf. */
/* definitions for set MSFAC2 */
#endif
mkcatdef は、シンボル ID に割り当てた番号を持つ gencatcomp.msg メッセージ・カタログ・ ソース・ファイルを作成します。
$timestamp 1994 137 19:09 UTC
$quote " Use double quotation marks to delimit message text
$delset 1
$set 1
1 "Symbolic identifiers can only contain alphanumeric ¥
characters or the _ (underscore character)¥n"
2 "Symbolic identifiers cannot be more than 65 characters long¥n"
5 "You can mix symbolic identifiers and numbers¥n"

割り当てたメッセージ番号は、ソース・ファイルに特定の番号を 含むため不連続です。mkcatdefs はシンボル ID に対して常に、前の番号に 1 を加えたものを割り当てます。

制限事項: mkcatdefs は、$delset コマンドを出力メッセージ・ ソース・ファイルの $set コマンドの前に挿入します。これは、gencat ユーティリティーにパイプ接続するとき、既存のカタログの単一メッセージを追加、削除または置換できないことを意味します。すべてのメッセージをセットに入力する必要があります。