XSupportsLocale(3) ロケールのサポートを決定し、ロケールモディファイアを設定する

Other Alias

XSetLocaleModifiers

書式

Bool XSupportsLocale()

char *XSetLocaleModifiers(modifier_list)

      char *modifier_list;

引き数

modifier_list
モディファイアを指定する。

説明

関数 XSupportsLocale は、Xlib の関数群が現在のロケールの下で動作可能であれば True を返す。 もし False が返された場合、 Xlib のロケール依存の関数で返却ステータス XLocaleNotSupported が定義されているものは XLocaleNotSupported を返す。 Xlib の他のロケール依存のルーチンは ``C'' ロケールで動作する。

関数 XSetLocaleModifiers は現在のロケール設定に対する X モディファイアを設定する。 引き数 modifier_list は ``{@category=value}'' の形を 取る null で終わる文字列である。つまり、0 個以上の連続した ``@category=value'' エントリーを持つ。ここで、 category はカテゴリー名で、value (空のこともある)はそのカ テゴリーに対する設定である。 この値は現在のロケールでエンコードされる。 カテゴリー名は POSIX ポータブルファイル名文字集合による制限を受ける。

ローカルホストのXロケールモディファイアアナウンサ(POSIX準拠のシステムで は、XMODIFIERS 環境変数)は、ローカルホストのデフォルト値を与えるために modifier_list に追加される。 与えられたカテゴリーがリスト中に2度以上現れた場合には、リスト中の最初 の設定が使用される。 与えられたカテゴリーが、モディファイアの完全なリスト中にも含まれない場 合は、カテゴリーは現在のロケールに対する実装依存のデフォルト値に設定 される。 明示的にカテゴリーに空の値を与えると、実装依存のデフォルト値の指定にな る。

関数が成功した場合には、文字列へのポインタが返される。 この文字列を(同じロケールで)使ってこの関数を呼び出せば、モディファイア を同じ設定に戻すことができるようになっている。 modifier_list が NULL ポインタの場合、 XSetLocaleModifiers もこのような文字列へのポインタを返し、現在のロケールモディファイアは変 更されない。

ロケールがサポートしている1つ以上のモディファイアカテゴリーに対して不 正な値が与えられた場合には NULL ポインタが返され、現在のモディファイア はいずれも変更されない。

プログラムの起動時有効にされるモディファイアは、これを設定する最初の 関数呼び出しの成功までは不定である。ロケールが変更された場合は常に、モ ディファイアを設定する次の関数呼び出しの成功までは、有効になっている モディファイアは不定となる。 クライアントは ロケールを設定した後かつロケール依存の Xlib 関数を呼び出す前に、 必ずNULLでないモディファイアリストを引き数にして XSetLocaleModifiers を呼ぶべきである。

現在のところ定義されている唯一の標準モディファイアカテゴリーは ``im'' である。 入力メソッドを指定する値は標準化されていない。 単独のロケールで複数の入力メソッドを使い、ユーザ制御で入力メソッドを切 替えることがあるかもしれない。 モディファイアは、最初に有効となる入力メソッドや入力メソッドの順列を指 定するかもしれない。 単独の im 値の文字列によって複数の入力メソッドが指定されるかもしれない。 この方法は実装に依存する。

返されるモディファイア文字列は Xlib が所有しているので、クライアントは 変更したり解放したりしてはならない。 これは現在のロケールやモディファイアが変更された後に Xlib によって解放 される。 解放されるまでは、Xlib によって変更されることはない。