Other Alias
XrmInitialize, XrmValue, XrmOptionKind, XrmOptionDescRec書式
void XrmInitialize();
void XrmParseCommand(database, table, table_count,
name, argc_in_out, argv_in_out)
XrmDatabase *database;
XrmOptionDescList table;
int table_count;
char *name;
int *argc_in_out;
char **argv_in_out;
引き数
- argc_in_out
- 引き数の数を指定する。また、残っている引き数の数が返される。
- argv_in_out
- コマンド行の引き数を指定する。 また、残っている引き数が返される。
- database
- リソースデータベースを指定する。
- name
- アプリケーション名を指定する。
- table
- 展開されるコマンド行の引き数のテーブルを指定する。
- table_count
- テーブルが持つエントリーの数を指定する。
説明
関数 XrmInitialize はリソースマネージャを初期化する。 他の Xrm 関数を用いる前には、必ずこの関数を呼び出さなくてはならない。関数 XrmParseCommand は、指定されたオプションテーブルに従って(argv, argc) の組を展開し、認 識したオプションを ``String'' 型で指定されたデータベースにロードし、 (argc, argv) の組から認識したオプションを全て取り除く。 引き数 databaseが NULL ならば、新しいデータベースが作成され、それを指す ポインタが返される。 そうでない場合には、エントリーが指定されたデータベースに追加される。 データベースを生成する場合には現在のロケールを使う。
指定されたテーブルはコマンド行の展開に使われる。 テーブル中で認識されたオプションは argv から取り除かれ、argv 中に現わ れた順でエントリーが指定されたリソースデータベースに追加される。 オプションの種類が XrmoptionNoArg ならば、テーブルのエントリはオプション文字列、オプション名、オプション の形式、与える値の情報を持つ。 オプション名は argv が持つ引き数とバイトごとの比較を行う。 これはいずれのロケールからも独立である。 テーブルで与えられるリソース値は、変更されずにリソースデータベースに格 納される。 全てのリソースデータベースのエントリーは、表現型 ``String'' を用いて 生成される。 引き数 argc は、argv が持つ引き数の数を指定する。関数が返ってきた際には、 展開されずに残った引き数の数が設定されている。 引き数 name はデータベースのエントリーを構築する際に用いられるアプリケー ションの名前を設定しなければならない。 引き数 name は、データベースのエントリーの格納の前に、オプション表で resourceName の先頭に付けられる。 途中にピリオドを含む場合であっても、引き数 name は単独のコンポーネントと して扱われる。 区切り(結合)文字が含まれていなければ、 テーブルはピリオド(.)かアスタリスク(*)を各 resourceName エントリーの先 頭の文字として含んでいなければならない。 より細かく限定したリソース名を指定するため、resourceName エントリーに 複数のコンポーネントを含めてもよい。 引き数 name と resourceName のエンコーディングがホストポータブル文字エ ンコーディングでない場合の実行結果は実装依存である。
構造体
XrmValue, XrmOptionKind, XrmOptionDescRec 構造体の内容を示す。
typedef struct { unsigned int size; XPointer addr; } XrmValue, *XrmValuePtr;
typedef enum { XrmoptionNoArg, XrmoptionIsArg, XrmoptionStickyArg, XrmoptionSepArg, XrmoptionResArg, XrmoptionSkipArg, XrmoptionSkipLine, XrmoptionSkipNArgs } XrmOptionKind;
typedef struct { char *option; char *specifier; XrmOptionKind argKind; XPointer value; } XrmOptionDescRec, *XrmOptionDescList;