XTextProperty(3) 文字列のリストとテキストプロパティ構造体を変換する

Other Alias

XStringListToTextProperty, XTextPropertyToStringList, XFreeStringList

書式

Status XStringListToTextProperty(list, count, text_prop_return)

      char **list;

      int count;

      XTextProperty *text_prop_return;

Status XTextPropertyToStringList(text_prop, list_return, count_return)

       XTextProperty *text_prop;

       char ***list_return;

       int *count_return;

void XFreeStringList(list)

      char **list;

引き数

count
文字列の数を指定する。
count_return
文字列の数が返される。
list
解放する文字列のリストを指定する。
list
NULL 文字で終わる文字列のリストを指定する。
list_return
NULL 文字で終わる文字列のリストが返される。
text_prop
使われる XTextProperty 構造体を指定する。
text_prop_return
XTextProperty 構造体が返される。

説明

関数 XStringListToTextProperty は、指定された文字列のリストの要素を繋げた値を指定された XTextProperty に設定する。 設定される値は STRING 型(フォーマット 8)であり、元のそれぞれの文字列は NULL で終わる。 追加の NULL バイト(これは nitems メンバの数には入らない)は、 text_prop_return の value フィールドの最後に格納される。 文字列のエンコーディングは STRING であるものと(検査なしに)想定される。 新しい文字列に割り当てる十分なメモリがなかった場合、 XStringListToTextPropertyXTextProperty 構造体のどのフィールドにも値を設定せず、ステータスとして 0 を返す。 そうでない場合、この関数は 0 でないステータスを返す。 value フィールドのメモリを解放するには XFree を使用すること。

関数 XTextPropertyToStringList は指定した XTextProperty 構造体が持つ要素群(NULL で区切られている)の内容を表す文字列のリストを 返す。 text_prop 内のデータは STRING 型かつフォーマット 8 でなければならない。 プロパティに複数個の要素が含まれる場合(例えば、細切れになったテキスト セレクションに含まれている文字列)は NULL (エンコーディング 0)で区切ら れている。 プロパティの内容の終端は NULL ではない。 リストとその要素に割り当てる十分なメモリがなかった場合、 XTextPropertyToStringList は変数に内容を設定せず、ステータスとして 0 を返す。 そうでない場合、この関数は 0 でないステータスを返す。 リストとその内容のメモリを解放するには XFreeStringList を使用すること。

関数 XFreeStringListXmbTextPropertyToTextList, Xutf8TextPropertyToTextList, XTextPropertyToStringList が割り当てたメモリと、 XCreateFontSet が割り当てた不足している文字集合のリストを解放する。

構造体

XTextProperty 構造体の内容を以下に示す。

typedef struct {
     unsigned char *value;
     Atom encoding;      
     int format;         
     unsigned long nitems;
} XTextProperty;