XrmGetFileDatabase(3X11) — NEWS-OS Programmer’s Manual
名称
XrmGetFileDatabase, XrmPutFileDatabase, XrmGetStringDatabase, XrmLocaleOfDatabase, XrmGetDatabase, XrmSetDatabase, XrmDestroyDatabase − リソースデータベースの検索およびストア
形式
XrmDatabase XrmGetFileDatabase(filename)
char ∗filename; void XrmPutFileDatabase(database, stored_db)
XrmDatabase database;
char ∗stored_db; XrmDatabase XrmGetStringDatabase(data)
char ∗data; char ∗XrmLocaleOfDatabase(database)
XrmDatabase database; XrmDatabase XrmGetDatabase(display)
Display ∗display; void XrmSetDatabase(display, database)
Display ∗display;
XrmDatabase database; void XrmDestroyDatabase(database)
XrmDatabase database;
引数
filenameリソースデータベースファイル名を指定します。
database使用するデータベースを指定します。
stored_dbストアしたデータベース用のファイル名を指定します。
data文字列を使用してデータベースの内容を指定します。
databaseリソースのデータベースを指定します。
displayX サーバとの接続を指定します。
解説
XrmGetFileDatabase 関数は、指定されたファイルをオープンし、 新しいリソースデータベースを作成し、 指定されたファイルから読取った仕様を使用して、 リソースデータベースをロードします。 指定されたファイルには、 有効な ResourceLine フォーマットのエントリで 記述されなければいけません (15.1 節参照)。 ファイルは、現在の locale でパースされ、 データベースは、現在の locale で作成されます。 指定されたファイルをオープンできない場合は、 XrmGetFileDatabase 関数はナルを返します。 XrmPutFileDatabase 関数は、指定されたデータベースのコピーを指定されたファイルに格納します。 有効な ResourceLine フォーマットで ファイルにエントリが記述されます (15.1 節参照)。 ファイルは、データベースの locale でパースされ、 データベースは、現在の locale で書かれます。 リソース名が、 ホストポータブル文字コード (Host Portable Character Encoding) に ないエントリ、および 値が、データベースの locale のコードでないエントリは、 書き込まれ方は、インプリメンテーションにより異なります。 エントリの書き込まれる順序もインプリメンテーションにより異なります。 “String” 型以外のエントリは、無視されます。 XrmGetStringDatabase 関数は、新しいデータベースを作成し、 ナルで終わる文字列で指定されたリソースを登録します。 XrmGetStringDatabase は、ファイルから情報を読み取る代わりに、 文字列から情報を読み取ることを除くと、 XrmGetFileDatabase と同様です。 文字列は、 有効な ResourceLine フォーマットのエントリで 記述されなければいけません (15.1 節参照)。 文字列は、現在の locale でパースされ、 データベースは、現在の locale で作成されます。 XrmDestroyDatabase 関数は、 データベースがナルの時、すぐにリターンします。 XrmLocaleOfDatabase 関数は、指定したデータベースの locale 名を ナルで終了する文字列として返します。 返される locale 名は、Xlib が所有し、 クライアントは修正および開放できません。 Xlib は、データベースが破壊されるまで、 文字列を開放することが許されません。 また、文字列が開放されるまで、 Xlib は、それを修正することができません。 XrmGetDatabase 関数は、指定した display に結び付けられているデータベースを返します。 データベースが設定されていない場合は、ナルを返します。 XrmSetDatabase 関数は、指定したリソースデータベース (あるいはナル) と 指定した display を結び付けます。 以前に display 結び付けられたデータベースがすでにある場合は、 それは破壊されません。 クライアントおよびツールキットは、 データベースを構築後、データベースを取り出すのに この関数を使用すると便利です。
ファイルの形式
リソースファイルの形式は、 改行文字または、ファイルの終わりで区切られた リソースの行からなります。 各リソースの行の形式は、以下のとおりです。
ResourceLine=Comment | IncludeFile | ResourceSpec | <空行>
Comment="!" {<ナルまたは改行文字以外の任意の文字>}
IncludeFile="#" WhiteSpace "include" WhiteSpace FileName WhiteSpace
FileName=<有効なオペレーティングシステムのファイル名>
ResourceSpec=WhiteSpace ResourceName WhiteSpace ":" WhiteSpace Value
ResourceName=[Binding] {Component Binding} ComponentName
Binding="." | "∗"
WhiteSpace={<space> | <horizontal tab>}
Component="?" | ComponentName
ComponentName=NameChar {NameChar}
NameChar="a"−"z" | "A"−"Z" | "0"−"9" | "_" | "-"
Value={<ナルまたはエスケープしていない改行文字以外の任意の文字>}
縦棒 (|) で分けられているエレメントは、そのうちのどれかを指定します。 Elements separated by vertical bar (|) are alternatives. 中括弧 ({...}) で囲まれたエレメントは、ゼロ回または 複数の繰り返しされることを意味します。 大括弧 ([...]) で囲まれたエレメントは、 オプショナルであることを意味します。 クオート ("...") は、リテラル文字の周りに使用されます。 IncludeFile の行は、指定したファイルの中身と置き換えられて 解釈されます。 単語 “include” は、小文字でなければいけません。 filename は、その行がある、 ファイルのディレクトリから相対的に (例えば、filename がディレクトリを含まない場合、 または相対ディレクトリ指定を含む場合) 解釈されます。 ResourceName が隣接する 2 個以上の Binding 文字からなる場合、 その文字列が “.” 文字のみの時は、 ピリオド “.” 一文字と置き換えられ、 それ以外の時は、 アスタリスク “∗” 一文字と置き換えられます。 リソースデータベースは、指定された各 ResourceName に対し、 2 つ以上のエントリを持つことはありません。 リソースファイルに、同じ ResourceName を持つ行が複数ある場合は、 ファイル中で最後に現われる行が使用されます。 ResourceSpec の名前またはコロンの前後の空白文字は、無視されます。 Value を空白文字で始めるには、 “\space” (バックスラッシュの後に空白文字) という 2 文字が、1 文字の空白文字と認識され、置き換えられます。 また、 “\tab” (バックスラッシュの後にタブ) という 2 文字が、1 文字のタブ文字と認識され、置き換えられます。 Value が改行文字を含む場合は、 “\n” という 2 文字が、1 文字の改行文字と認識され、置き換えられます。 Value をテキストファイルで複数行に分けて書くには、 “\newline” (バックスラッシュの後に改行文字) という 2 文字が認識され、値から取り除かれます。 Value が任意の文字コードを含ませるには、 “\nnn” という 4 文字 (各 n は、0 − 7 の 1 桁の数字を表す) が認識され、 1 バイトの 8 進数の値と置き換えられます。 そして、 “\\\*(rq という 2 文字が、1 文字のバックスラッシュと認識され、置き換えられます。
関連事項
XrmGetResource(3X11), XrmInitialize(3X11), XrmPutResource(3X11)
Xlib − C Language X Interface
NEWS-OSRelease 4.2.1R