#define XrmStringToName(string) XrmStringToQuark(string) #define XrmStringToClass(string) XrmStringToQuark(string) #define XrmStringToRepresentation(string) XrmStringToQuark(string)
XrmQuark XrmStringToQuark(string)
char *string;
XrmQuark XrmPermStringToQuark(string)
char *string;
#define XrmStringToName(string) XrmStringToQuark(string) #define XrmStringToClass(string) XrmStringToQuark(string) #define XrmStringToRepresentation(string) XrmStringToQuark(string)
XrmQuark XrmStringToQuark(string)
char *string;
XrmQuark XrmPermStringToQuark(string)
char *string;
#define XrmNameToString(name) XrmQuarkToString(name) #define XrmClassToString(class) XrmQuarkToString(class) #define XrmRepresentationToString(type) XrmQuarkToString(type)
char *XrmQuarkToString(quark)
XrmQuark quark;
#define XrmStringToNameList(str, name) XrmStringToQuarkList((str), (name)) #define XrmStringToClassList(str,class) XrmStringToQuarkList((str), (class))
void XrmStringToQuarkList(string, quarks_return)
char *string;
XrmQuarkList quarks_return;
XrmStringToBindingQuarkList(string, bindings_return, quarks_return)
char *string;
XrmBindingList bindings_return;
XrmQuarkList quarks_return;
これらの関数は、文字列をクォーク表現に変換するために使うことができる。 文字列のエンコーディングがホストポータブル文字エンコーディングでない場 合、変換の動作は実装に依存する。 XrmStringToQuark に渡す引き数 string は、ずっと割り当てられたままの領域である必要はない。 関数 XrmPermStringToQuark は XrmStringToQuark とほぼ同じであるが、引き数 string が割り当てられたままの領域で あることを Xlib が想定してもよい点が異なる。したがって、引き数 string は XrmQuarkToString が返す値として使うことができる。
与えられたクォークについて、 XrmStringToQuark が NULL でない値を返した場合、それ以降の全ての関数呼び出しに対して同じ 値(同一のアドレス)が返される。
これらの関数は、クォーク表現を文字列に変換するために使うことができる。 関数の返り値が指す文字列の変更や解放を行ってはならない。 返される文字列は、文字列をクォークに変換する関数に渡された元の文字列 とバイトのレベルで等しい。 そのクォークに対する文字列が存在しない場合、 XrmQuarkToString は NULL を返す。 与えられたクォークに対して XrmQuarkToString が NULL でない値を返した場合、それ以降の全ての関数呼び出しに対して同じ 値(同一のアドレス)が返される。
これらの関数は、文字列のクォーク表現への変換に使うことができる。 文字列のエンコーディングがホストポータブル文字エンコーディングでない場 合、 変換の動作は実装依存である。 XrmStringToQuark に渡す引き数 string は、ずっと割り当てられたままの領域である必要はない。 関数 XrmPermStringToQuark は XrmStringToQuark とほぼ同じであるが、Xlib が引き数 string が割り当てられたままの領域で あることを想定してもよい点が異なる。したがって、この関数では引き数 string を XrmQuarkToString に返される値として使うことができる。
与えられたクォークについて、 XrmStringToQuark が NULL でない値を返した場合、それ以降の全ての関数呼び出しに対して同じ 値(同一のアドレス)が返される。
関数 XrmStringToQuarkList は NULL で終わる文字列(一般的には完全に限定された名前)をクォークのリス トに変換する。 この文字列は有効な ResourceName 形式でなければならない(15.1 節を参照)。 この文字列のエンコーディングがホストポータブル文字エンコーディングでな い場合、変換の動作は実装依存である。
結合リストは、 XrmBindingList 型であり、クラスや名前のリストの要素が強くあるいは緩く関連づけされてい る(つまり、ワールドカードを使った中間要素が指定されている)ことを示す。
typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
XrmBindTightly は、ピリオドが要素を区切っていること示す。また、 XrmBindLoosely は、アスタリスクが要素を区切っていることを示す。
関数 XrmStringToBindingQuarkList は、指定した文字列を結合リストとクォークのリストに変換する。 文字列のエンコーディングがホストポータブル文字エンコーディングでない場 合、変換の動作は実装依存である。 リストが含む要素名は、ピリオドかアスタリスクで区切られている。 文字列の最初の文字がピリオドかアスタリスクではない場合は、ピリオドであ るものとして扱われる。 例えば ``*a.b*c'' は次のようになる:
クォーク a bc
結合 緩い 強い 緩い