COLLDEF(1)

名称
colldef - 照合シークエンスのソース定義を変換する

書式
colldef [-I map_dir] [-o out_file] [filename]

解説
colldef ユーティリティは、照合シークエンスのソース定義を strxfrm() と strcoll() 関数で使えるフォーマットに変換します。 すなわち、文字列をソートや照合で きるようにする様々な方法を定義するために使われます。 strxfrm() 関数は、その第一引数を変換して第二引数の結果に置き換えます。 変換された文字列は、 strcmp(), strncmp(), memcmp() を使って別の変換された文字列と比較して正しくソートできるようになります。 strcoll() 関数はその引数を変換し、比較を行ないます。

colldef ユーティリティは、 標準入力から照合シークエンスソース定義を読み込み、変換された定義を filename に格納します。 生成される出力ファイルの内容は、システムコマンドやシステムルーチンが 使える形式の照合シークエンス情報を持つデータベースです。

次のオプションが使用可能です:

-I map_dir
    charmap ファイルを探すディレクトリ名を設定します。 デフォルトでカレントディレクトリです。

-o out_file
    出力ファイル名を設定します。 デフォルトで LC_COLLATE になります。

照合シークエンス定義は、照合要素集合、 およびこれを含む文字列をどのように順序付けるかを定義する規則を指定します。 これは異なる言語定義に最も便利です。

指定ファイルは次の三つのステートメントから成ります: charmap, substitute, order

この中で order ステートメントだけが必須です。 charmap や substitute が与えられたときは、ステートメントの順序は上のようになっていなければ なりません。 orderステートメントの後のステートメントは無視されます。

指定ファイルの中で ‘#’ で始まる行はコメントと扱われ、無視されます。空行も無視されます。

    charmap charmapfile

charmap は、文字のマッピングと実際の文字エンコーディングへの照合要素シンボル が見つかる場所を定義します。

charmapfile のフォーマットを以下に示します。 シンボル名とその値は、タブまたは空白文字によって区切られます。 symbol-value は 16 進 (\x??) または 8 進 (\???) 表現で指定でき、長さは一文字を意味します。

    symbol-name1 symbol-value1
    symbol-name2 symbol-value2
    ...

シンボル名は substitute フィールドでは指定できません。

charmap ステートメントはオプション指定です。

    substitute "symbol" with "repl_string"

substitute ステートメントは、文字 symbol を文字列 repl_string に置き換えます。

substitute ステートメントはオプション指定です。

    order order_list

order_list は、セミコロンで区切られた、照合シークエンスを定義する シンボルのリストです。 特殊シンボル ... は、簡略な形の機械語順で連なったシンボルを指定します。

orderリストの要素は、次の方法のうちのどれかで表現できます。

•   シンボル自身 (例えば、小文字の a は a と書きます)。

•   8 進表現のシンボル (例えば、文字 a には \141) 。

•   16 進表現のシンボル (例えば、文字 a には \x61) 。

•   charmap ファイル内で定義されたシンボル名 (例えば、 charmapfile の letterA \023 に対して <letterA> )。 文字マップ名が、文字 > を持つ場合は、 /> のようにエスケープされなければならず、 文字 / は // のようにエスケープされなければなりません。

•   シンボル \a, \b, \f, \n, \r, \v は、通常の C言語の意味で使うことが許されています。

•   シンボルチェーン (例えば、 abc, <letterA><letterB>c, \xf1b\xf2) 。

•   シンボルの範囲 (例えば a;...;z) 。

•   コンマ区切りのシンボル、範囲、チェーンは括弧でくくられます。 (例えば ( sym1, sym2, ... file ...)) は同じ一次順序で割り当てられますが、異なる二次順序となります。

•   鈎括弧でくくられたコンマ区切りのシンボル、範囲、チェーン (例えば、 { sym1, sym2, ... }) は、同じ一次順序だけに割り当てられます)。

バックスラッシュ文字 \ は、行の継続に使われます。 この場合、バックスラッシュ文字の後には どんな文字も書かれてはなりません。

診断
colldef ユーティリティは、次の戻り値で終了します。

0   エラーがなく、出力の生成に成功した場合

!=0 エラーが見つかった場合

関連ファイル

/usr/share/locale/<language>/LC_COLLATE
    locale <language> の配下で、locale の照合順序のための標準共有位置

関連項目
mklocale(1), setlocale(3), strcoll(3), strxfrm(3)