XtResolvePathname(3Xt)

名前
XtResolvePathname - 標準的な置き換えを使ってファイルを探す

書式
String XtResolvePathname(display, type, filename, suffix, path, substitutions, num_substitutions, predicate)
      Display *display;
      String type, filename, suffix, path;
      Substitution substitutions;
      Cardinal num_substitutions;
      XtFilePredicate predicate;

引き数

display
    Specifies the display to use to find the language for language substitutions.

type

filename

suffix
    パスで置き換える値を指定。

path
    ファイル指定のリスト、あるいは NULL を指定。

substitutions
    パスに行う追加的な置き換えのリスト、あるいは NULL を指定。

num_substitutions
    substitutions のエントリー数を指定。

predicate
    ファイル名の各候補を判定するために呼ぶ手続き、あるいは NULL を指定。

説明
で指定した置き換えは、 指定したディスプレイに対する で取得した言語文字列の値から決められる。 どのアプリケーションに対しても、リソースデータベースにおいて ``*xnlLanguage: lang'' を指定することで言語を設定することができ る。 言語文字列のフォーマットと内容は実装定義である。記法の例を挙げると、言 語文字列は3つのパートを組み合わせて作ることができる。これは「言語パー ト」「地域パート」「コードセットパート」である。この組み合わせを行う方 法は実装定義であり、以下で説明する置き換えに使う以外にはイントリンシク スはパートの解釈は行わない。

は、呼び出し側が渡したものに加えて以下の置き換えを使って を呼び出し、 が返した値を返す。

%N  filename パラメータの値。 filename が NULL ならばアプリケーションのクラス名。

%T  type パラメータの値。

%S  suffix パラメータの値。

%L  指定したディスプレイに関連づけられた言語文字列。

%l  ディスプレイの言語文字列の言語パート。

%t  ディスプレイの言語文字列の地域パート。

%c  ディスプレイの言語文字列のコードセットパート。

%C  display に対応づけられたリソースデータベースから取得したカスタマ イズ文字列。

%D  実装固有であるデフォルトのパスの値。

パスが に渡される場合、これは に渡される。 引き数 path が NULL ならば、環境変数 の値が に渡される。 が定義されていない場合、少なくとも6つのエントリーを持つ実装固有のデフォ ルトのパスが使われる。このエントリーは以下の置き換えを含まなければなら ない:
1.	%C, %N, %S, %T, %L	または	%C, %N, %S, %T, %l, %t, %c
2.	%C, %N, %S, %T, %l
3.	%C, %N, %S, %T
4.	%N, %S, %T, %L	または	%N, %S, %T, %l, %t, %c
5.	%N, %S, %T, %l
6.	%N, %S, %T
パスにおける6つのエントリーの順序は上記のままでなければならない。 与えられたエントリーにおける置き換えの順序と使用は実装依存である。 パスがコロンで始まる場合、その前には %N%S が置かれる。パス中でコロンが 2つ続いている場合には、その間に %N%S が挿入される。

type パラメータはファイルのカテゴリーを示すためのものであり、通 常はパス名内でディレクトリに置換される。これは ``app-defaults'', ``help'', ``bitmap'' 等の値を持つ。

suffix パラメータはファイル名に追加されるものである。 これは ``.txt'', ``.dat'', ``.bm'' 等の値を持つ。

POSIX 準拠のシステムにおけるデフォルトのパスの値の例を挙げる。

    <XRoot>/lib/X11/%L/%T/%N%C%S:<XRoot>/lib/X11/%l/%T/%N%C%S:\
    <XRoot>/lib/X11/%T/%N%C%S:<XRoot>/lib/X11/%L/%T/%N%S:\
    <XRoot>/lib/X11/%l/%T/%N%S:<XRoot>/lib/X11/%T/%N%S

ここで <XRoot> は X11 のインストールツリーのルート(例えば /usr/X11R6) に置き換えられる。

この例を使ってユーザが言語を指定した場合には、これは他のファイルを探す ための <XRoot>/lib/X11 のサブディレクトリとして使われる。求めるサイズ がそこで見つからない場合、指定の言語パートだけを使って次の検索が行われ る。それでも見つからない場合には、<XRoot>/lib/X11 が検索される。 type パラメータは言語ディレクトリのサブディレクトリまたは <XRoot>/lib/X11 のサブディレクトリとして使われ、suffix がファイ ル名に追加される。

%D による置き換えを使うと、実行固有のデフォルトパスにパス要素の追加を 行うことができる。特に、システムディレクトリにおけるリソース発見を妨げ ることなく追加のディレクトリを検索することができる。例えば、ユーザがディ レクトリ ``ourdir'' にリソースファイルをインストールした場合、 は %D:ourdir/%T/%N%C:ourdir/%T/%N のようにセットされる。

カスタマイズ文字列は、ディスプレイに現在関連づけられているリソースデー タベース( が返すデータベース)に対してリソース application_name.customization やクラス application_class.Customization を問い合わせることで取得できる。 ここで application_name と application_class は が返す値である。 データベース中に値が指定されていない場合には、空文字列が使われる。

返された文字列が不要になったとき、 を使ってこの文字列を解放するのは呼び出し側の責任である。

関連項目
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface