XmbTextListToTextProperty(3X11)

名前
XmbTextListToTextProperty, XwcTextListToTextProperty, XmbTextPropertyToTextList, XwcTextPropertyToTextList, XwcFreeStringList, XDefaultString - テキストリストとテキストプロパティ構造体を変換

書式
int XmbTextListToTextProperty(display, list, count, style, text_prop_return)
      Display *display;
      char **list;
      int count;
      XICCEncodingStyle style;
      XTextProperty *text_prop_return;

int XwcTextListToTextProperty(display, list, count, style, text_prop_return)
      Display *display;
      wchar_t **list;
      int count;
      XICCEncodingStyle style;
      XTextProperty *text_prop_return;

int XmbTextPropertyToTextList(display, text_prop, list_return, count_return)
      Display *display;
      XTextProperty *text_prop;
      char ***list_return;
      int *count_return;

int XwcTextPropertyToTextList(display, text_prop, list_return, count_return)
      Display *display;
      XTextProperty *text_prop;
      wchar_t ***list_return;
      int *count_return;

void XwcFreeStringList(list)
      wchar_t **list;

char *XDefaultString()

引き数

display
    X サーバへの接続を指定。

list
    NULL 文字で終わる文字列のリストを指定。

count
    指定した文字列の数を指定。

style
    プロパティがエンコードされる方法を指定。

text_prop_return
    構造体を返す。

text_prop
    使用される 構造体を指定。

list_return
    NULL 文字で終わる文字列のリストを返す。

count_return
    文字列 の数を返す。

list
    解放される文字列のリストを指定。

説明
関数 および は指定した の値を NULL 文字で区切られた要素からなるセットに設定する。これは指定し た NULL 文字で終わるテキスト文字列のリストを結合したものに対応する。 終端の NULL 文字は text_prop_return の value フィールドの最後に入って いるが、これは nitems には数えられていない。

これらの関数は text_prop_return の encoding フィールドに、指定したディ スプレイに対する をセットする。この は指定したスタイルから決まるエンコーディングを示すものである。 そして次に、指定したテキストリストをこのエンコーディングに変換して text_prop_return フィールドに入れる。 スタイルとして あるいは が指示された場合は、このエンコーディングはそれぞれ ``STRING'' か ``COMPOUND_TEXT'' となる。 スタイルに が指定された場合には、エンコーディングは現在のロケールのエンコーディン グとなる。 スタイルに が指示された場合、テキストが完全に STRING に変換可能であれば エンコーディングは ``STRING'' に、そうでなければ ``COMPOUND_TEXT'' に なる。

新しい文字列(XTextProperty の value フィールド)に割り当てるメモリが十 分にない場合、関数は を返す。 現在のロケールがサポートされていない場合、関数は を返す。 どちらのエラーの場合も、関数は text_prop_return は返さない。

関数が を返さないことを保証するためには、関数 を利用すること。

与えられたテキストの全てが指定されたエンコーディングに変換可能でない場 合、関数は変換できない文字の数を返す。 変換できない文字はそれぞれ実装定義でエンコーディング特有のデフォルト文 字列に変換される。 上記以外の場合には、関数は を返す。 を除く全てのスタイルに対しては、テキストを完全に変換できることが保証さ れている点に注意すること。

XTextProperty 構造体の value フィールドのメモリを解放するには、 を使用すること。

関数 および は、与えられた 構造体の NULL 文字で区切られた要素を表す、現在のロケールでのテキスト文 字列のリストを返す。 text_prop 内のデータはフォーマット8でなければならない。

プロパティの複数の要素(例えば、ばらばらのテキストセレクション内の文字 列)は NULL バイトで区切られる。 プロパティの内容は、NULL で終わる必要はない。 終端の NULL 文字は text_prop.nitems に含まれてはならない。

リストとその要素に割り当てる十分なメモリがない場合、関数 と は を返す。 現在のロケールがサポートされていない場合、関数は を返す。 それ以外の場合、もし text_prop の encoding フィールドが現在のロケール のエンコーディングに変換することができなければ、関数は を返す。 サポートされているロケールに対しては、 が現在のロケールに対して を返すならば、COMPOUND_TEXT, STRING, 現在のロケールのエンコーディング からのコンバータの存在が保証される(ただし、実際のテキストは変換不可能 な文字を含むかもしれない)。 他のエンコーディングの変換については実装依存である。 以上のエラーの場合はいずれも、関数は返し値をセットしない。

そうでなければ、 および は list_return に NULL 文字で終わるテキスト文字列のリストを、 count_return にテキスト文字列の数を返す。

もし、text_prop の value フィールドが現在のロケールのエンコーディング に完全には変換できない場合には、関数は変換できない文字の数を返す。 変換できない文字のそれぞれは、現在のロケールに特有の、現在のロケールの 文字列に変換される。 この文字列の値を得るには、 を使用する。 それ以外の場合、 と は を返す。

が返すリストとその内容に割り当てられたメモリを解放するには を使用する。 が返すリストとその内容に割り当てられたメモリを解放するには を使用する。

関数 は、 によって割り当てられたメモリを解放する。

関数 は Xlib が(例えば、 で)テキスト変換に用いるデフォルト文字列を返す。 デフォルト文字列は現在のロケールの文字列で、テキスト変換中に変換できな い文字が現れたときに出力されるものである。 が返す文字列が空文字列("")である場合、変換されたテキストには何も出力 されない。 は NULL を返さない。

が返す文字列は、テキスト描画のデフォルト文字列とは独立である。 に対するデフォルト文字列を得るには、 の項を参照すること。

undefined. Xlib の関数はいずれも、不正な文字コードが与えられたときの動作は未定義 である。

返される文字列は NULL 文字で終わる。 これは Xlib が所有するものであり、クライアントは変更したり解放したりし てはならない。 これは現在のロケールが変更された後に解放される。 解放されるまでは、Xlib によって変更されることはない。

構造体
構造体の内容を示す。

typedef struct {
    unsigned char *value;    /* プロパティ領域 */
    Atom encoding;    /* プロパティのタイプ */
    int format;    /* 8, 16, あるいは 32 */
     unsigned long nitems;    /* value 内のアイテム数 */
} XTextProperty;

構造体の内容を示す。

#define |  | -1
#define |  | -2
#define |  | -3
typedef enum {
    XStringStyle,    /* STRING */
    XCompoundTextStyle,    /* COMPOUND_TEXT */
    XTextStyle,    /* 所有者のエンコーディングの文字列 (現在のロケール) */
    XStdICCTextStyle    /* STRING, さもなくば COMPOUND_TEXT */
} XICCEncodingStyle;

関連項目
XSetTextProperty(3X11), XStringListToTextProperty(3X11)
Xlib - C Language X Interface