Scroll to navigation

XtResolvePathname(3Xt) XT FUNCTIONS 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 を指定。

説明

XtResolvePathname で指定した置き換えは、 指定したディスプレイに対する XtDisplayInitialize で取得した言語文字列の値から決められる。 どのアプリケーションに対しても、リソースデータベースにおいて ``*xnlLanguage: lang'' を指定することで言語を設定することができ る。 言語文字列のフォーマットと内容は実装定義である。記法の例を挙げると、言 語文字列は3つのパートを組み合わせて作ることができる。これは「言語パー ト」「地域パート」「コードセットパート」である。この組み合わせを行う方 法は実装定義であり、以下で説明する置き換えに使う以外にはイントリンシク スはパートの解釈は行わない。
XtResolvePathname は、呼び出し側が渡したものに加えて以下の置き換えを使って XtFindFile を呼び出し、 XtFindFile が返した値を返す。
%N
filename パラメータの値。 filename が NULL ならばアプリケーションのクラス名。
%T
type パラメータの値。
%S
suffix パラメータの値。
%L
指定したディスプレイに関連づけられた言語文字列。
%l
ディスプレイの言語文字列の言語パート。
%t
ディスプレイの言語文字列の地域パート。
%c
ディスプレイの言語文字列のコードセットパート。
%C
display に対応づけられたリソースデータベースから取得したカスタマ イズ文字列。
%D
実装固有であるデフォルトのパスの値。
パスが XtResolvePathname に渡される場合、これは XtFindFile に渡される。 引き数 path が NULL ならば、環境変数 XFILESEARCHPATH の値が XtFindFile に渡される。 XFILESEARCHPATH が定義されていない場合、少なくとも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'' にリソースファイルをインストールした場合、 XFILESEARCHPATH は %D:ourdir/%T/%N%C:ourdir/%T/%N のようにセットされる。
カスタマイズ文字列は、ディスプレイに現在関連づけられているリソースデー タベース( XrmGetDatabase が返すデータベース)に対してリソース application_name.customization やクラス application_class.Customization を問い合わせることで取得できる。 ここで application_nameapplication_classXtGetApplicationNameAndClass が返す値である。 データベース中に値が指定されていない場合には、空文字列が使われる。
返された文字列が不要になったとき、 XtFree を使ってこの文字列を解放するのは呼び出し側の責任である。

関連項目

X Toolkit Intrinsics - C Language Interface
 
Xlib - C Language X Interface
Release 6.5 X Version 11