XrmInitialize(3X11)

名前
XrmInitialize, XrmParseCommand, 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
    テーブルが持つエントリーの数を指定。

説明
関数 はリソースマネージャを初期化する。 他の Xrm 関数を用いる前には、必ずこの関数を呼び出さなくてはならない。

関数 は、指定されたオプションテーブルに従って(argv, argc) の組を展開し、認 識したオプションをタイプ ``String'' で指定されたデータベースにロードし、 (argc, argv) の組から認識したオプションを全て取り除く。 引き数 databaseが NULL ならば、新しいデータベースが作成され、それを指す ポインタが返される。 そうでない場合には、エントリーが指定されたデータベースに追加される。 データベースを生成する場合には現在のロケールを使う。

指定されたテーブルはコマンド行の展開に使われる。 テーブル中で認識されたオプションは argv から取り除かれ、argv 中に現わ れた順でエントリーが指定されたリソースデータベースに追加される。 オプションの種類が ならば、テーブルのエントリはオプション文字列、オプション名、オプション の形式、与える値の情報を持つ。 オプション名は argv が持つ引き数とバイトごとの比較を行う。 これはいずれのロケールからも独立である。 テーブルで与えられるリソース値は、変更されずにリソースデータベースに格 納される。 のリソースデータベースのエントリー全ては、表現タイプ``String''を用いて 生成される。 引き数 argc は、argv が持つ引き数の数を指定する。関数が返ってきた際には、 展開されずに残った引き数の数がセットされている。 引き数 name はデータベースのエントリーを構築する際に用いられるアプリケー ションの名前をセットしなければならない。 引き数 name は、データベースのエントリーの格納の前に、オプション表で resourceName の先頭に付けられる。 途中にピリオドを含む場合であっても、引き数 name は単独のコンポーネントと して扱われる。 区切り(結合)文字が含まれていなければ、 テーブルはピリオド(.)かアスタリスク(*)を各 resourceName エントリーの先 頭の文字として含んでいなければならない。 より細かく限定したリソース名を指定するため、resourceName エントリーに 複数のコンポーネントを含めてもよい。 引き数 name と resourceName のエンコーディングがホストポータブル文字エ ンコーディングでない場合、実行結果は実装依存である。

構造体
構造体の内容を示す。

typedef struct {
    unsigned int size;
    XPointer addr; } XrmValue, *XrmValuePtr;

typedef enum {
     XrmoptionNoArg,    /* 値は XrmOptionDescRec.value で指定 */
     XrmoptionIsArg,    /* 値はオプション文字列そのもの */
     XrmoptionSepArg,    /* 値は argv 中の次の引き数 */
     XrmoptionResArg,    /* argv 中の次の引き数のリソースと値 */
     XrmoptionSkipArg,    /* こオプションと argv 中の次の引き数を無視 */
     XrmoptionSkipLine,    /* このオプションと残りのargvを無視 */
     XrmoptionSkipNArgs    /* このオプションと argv 中の次の引き数
                   XrmOptionDescRec.value を無視 */ } XrmOptionKind;

typedef struct {
     char *option;    /* argv 中のオプション指定文字列 */
     char *specifier;    /* 結合文字とリソース名(アプリケーション名は含まない) */
     XrmOptionKind argKind;    /* オプションの形式 */
     XPointer value;    /* XrmoptionNoArg あるいは XrmoptionSkipNArgs */
} XrmOptionDescRec, *XrmOptionDescList;

関連項目
XrmGetResource(3X11), XrmMergeDatabases(3X11), XrmPutResource(3X11), XrmUniqueQuark(3X11)
Xlib - C Language X Interface