332b359851
Submitted by: Norihiro Kumagai <kuma@nk.rim.or.jp> Reviewed by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>, kano@na.rim.or.jp
252 lines
5.8 KiB
Groff
252 lines
5.8 KiB
Groff
.\" Copyright (c) 1995 Alex Tatmanjants <alex@elvisti.kiev.ua>
|
|
.\" at Electronni Visti IA, Kiev, Ukraine.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/usr.bin/colldef/colldef.1,v 1.21 2004/05/19 09:45:46 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd January 27, 1995
|
|
.Dt COLLDEF 1
|
|
.Os
|
|
.Sh 名称
|
|
.Nm colldef
|
|
.Nd 照合シークエンスのソース定義を変換する
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl I Ar map_dir
|
|
.Op Fl o Ar out_file
|
|
.Op Ar filename
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは、照合シークエンスのソース定義を
|
|
.Fn strxfrm
|
|
と
|
|
.Fn strcoll
|
|
関数で使えるフォーマットに変換します。
|
|
すなわち、文字列をソートや照合で
|
|
きるようにする様々な方法を定義するために使われます。
|
|
.Fn strxfrm
|
|
関数は、その第一引数を変換して第二引数の結果に置き換えます。
|
|
変換された文字列は、
|
|
.Fn strcmp ,
|
|
.Fn strncmp ,
|
|
.Fn memcmp
|
|
を使って別の変換された文字列と比較して正しくソートできるようになります。
|
|
.Fn strcoll
|
|
関数はその引数を変換し、比較を行ないます。
|
|
.Pp
|
|
.Nm
|
|
ユーティリティは、
|
|
標準入力から照合シークエンスソース定義を読み込み、変換された定義を
|
|
filename に格納します。
|
|
生成される出力ファイルの内容は、システムコマンドやシステムルーチンが
|
|
使える形式の照合シークエンス情報を持つデータベースです。
|
|
.Pp
|
|
次のオプションが使用可能です:
|
|
.Bl -tag -width indent
|
|
.It Fl I Ar map_dir
|
|
.Ar charmap
|
|
ファイルを探すディレクトリ名を設定します。
|
|
デフォルトでカレントディレクトリです。
|
|
.It Fl o Ar out_file
|
|
出力ファイル名を設定します。
|
|
デフォルトで
|
|
.Ar LC_COLLATE
|
|
になります。
|
|
.El
|
|
.Pp
|
|
照合シークエンス定義は、照合要素集合、
|
|
およびこれを含む文字列をどのように順序付けるかを定義する規則を指定します。
|
|
これは異なる言語定義に最も便利です。
|
|
.Pp
|
|
指定ファイルは次の三つのステートメントから成ります:
|
|
.Ar charmap ,
|
|
.Ar substitute ,
|
|
.Ar order
|
|
.Pp
|
|
この中で
|
|
.Ar order
|
|
ステートメントだけが必須です。
|
|
.Ar charmap
|
|
や
|
|
.Ar substitute
|
|
が与えられたときは、ステートメントの順序は上のようになっていなければ
|
|
なりません。 orderステートメントの後のステートメントは無視されます。
|
|
.Pp
|
|
指定ファイルの中で
|
|
.Ql #
|
|
で始まる行はコメントと扱われ、無視されます。空行も無視されます。
|
|
.Pp
|
|
.Dl "charmap charmapfile"
|
|
.Pp
|
|
.Ar charmap
|
|
は、文字のマッピングと実際の文字エンコーディングへの照合要素シンボル
|
|
が見つかる場所を定義します。
|
|
.Pp
|
|
.Ar charmapfile
|
|
のフォーマットを以下に示します。
|
|
シンボル名とその値は、タブまたは空白文字によって区切られます。
|
|
symbol-value は 16 進 (\ex\fI??\fR) または 8 進 (\e\fI???\fR)
|
|
表現で指定でき、長さは一文字を意味します。
|
|
.Pp
|
|
.Bd -literal -offset indent
|
|
symbol-name1 symbol-value1
|
|
symbol-name2 symbol-value2
|
|
\&...
|
|
.Ed
|
|
.Pp
|
|
シンボル名は
|
|
.Ar substitute
|
|
フィールドでは指定できません。
|
|
.Pp
|
|
.Ar charmap
|
|
ステートメントはオプション指定です。
|
|
.Pp
|
|
.Bd -literal -offset indent
|
|
substitute "symbol" with "repl_string"
|
|
.Ed
|
|
.Pp
|
|
.Ar substitute
|
|
ステートメントは、文字
|
|
.Ar symbol
|
|
を文字列
|
|
.Ar repl_string
|
|
に置き換えます。
|
|
.Pp
|
|
.Ar substitute
|
|
ステートメントはオプション指定です。
|
|
.Pp
|
|
.Dl "order order_list"
|
|
.Pp
|
|
.Ar order_list
|
|
は、セミコロンで区切られた、照合シークエンスを定義する
|
|
シンボルのリストです。
|
|
特殊シンボル
|
|
.Ar ...
|
|
は、簡略な形の機械語順で連なったシンボルを指定します。
|
|
.Pp
|
|
orderリストの要素は、次の方法のうちのどれかで表現できます。
|
|
.Bl -bullet
|
|
.It
|
|
シンボル自身 (例えば、小文字の
|
|
.Ar a
|
|
は
|
|
.Ar a
|
|
と書きます)。
|
|
.It
|
|
8 進表現のシンボル (例えば、文字
|
|
.Ar a
|
|
には
|
|
.Ar \e141 )
|
|
。
|
|
.It
|
|
16 進表現のシンボル (例えば、文字
|
|
.Ar a
|
|
には
|
|
.Ar \ex61 )
|
|
。
|
|
.It
|
|
.Ar charmap
|
|
ファイル内で定義されたシンボル名 (例えば、
|
|
.Ar charmapfile
|
|
の
|
|
.Ar letterA \e023
|
|
に対して
|
|
.Ar <letterA>
|
|
)。
|
|
文字マップ名が、文字
|
|
.Ar >
|
|
を持つ場合は、
|
|
.Ar />
|
|
のようにエスケープされなければならず、
|
|
文字
|
|
.Ar /
|
|
は
|
|
.Ar //
|
|
のようにエスケープされなければなりません。
|
|
.It
|
|
シンボル
|
|
.Ar \ea ,
|
|
.Ar \eb ,
|
|
.Ar \ef ,
|
|
.Ar \en ,
|
|
.Ar \er ,
|
|
.Ar \ev
|
|
は、通常の C言語の意味で使うことが許されています。
|
|
.It
|
|
シンボルチェーン (例えば、
|
|
.Ar abc ,
|
|
.Ar <letterA><letterB>c ,
|
|
.Ar \exf1b\exf2 )
|
|
。
|
|
.It
|
|
シンボルの範囲 (例えば
|
|
.Ar a;...;z )
|
|
。
|
|
.It
|
|
コンマ区切りのシンボル、範囲、チェーンは括弧でくくられます。
|
|
(例えば
|
|
.Ar \&(
|
|
.Ar sym1 ,
|
|
.Ar sym2 ,
|
|
.Ar ...
|
|
.Ar \&) )
|
|
は同じ一次順序で割り当てられますが、異なる二次順序となります。
|
|
.It
|
|
鈎括弧でくくられたコンマ区切りのシンボル、範囲、チェーン (例えば、
|
|
.Ar \&{
|
|
.Ar sym1 ,
|
|
.Ar sym2 ,
|
|
.Ar ...
|
|
.Ar \&} )
|
|
は、同じ一次順序だけに割り当てられます)。
|
|
.El
|
|
.Pp
|
|
バックスラッシュ文字
|
|
.Ar \e
|
|
は、行の継続に使われます。
|
|
この場合、バックスラッシュ文字の後には
|
|
どんな文字も書かれてはなりません。
|
|
.Sh 診断
|
|
.Nm
|
|
ユーティリティは、次の戻り値で終了します。
|
|
.Bl -tag -width indent
|
|
.It Li 0
|
|
エラーがなく、出力の生成に成功した場合
|
|
.It Li !=0
|
|
エラーが見つかった場合
|
|
.El
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width indent
|
|
.It Pa /usr/share/locale/ Ns Ao Ar language Ac Ns Pa /LC_COLLATE
|
|
locale
|
|
.Aq Ar language
|
|
の配下で、locale の照合順序のための標準共有位置
|
|
.El
|
|
.Sh 関連項目
|
|
.Xr mklocale 1 ,
|
|
.Xr setlocale 3 ,
|
|
.Xr strcoll 3 ,
|
|
.Xr strxfrm 3
|