[名前]
・cl-unf

[バージョン]
・0.0.1

[概要]
・Unicode(5.2.0)文字列の正規化ライブラリ
・UTF-32対応のCommon Lisp処理系で動作
　※ ただし、SBCL用に最適化されているため、他の処理系ではおそらく十分な性能がでない

[インストール方法]
> (require :asdf-install)
> (asdf-install:install "cl-unf-0.0.1.tar.gz")

[使用方法]
> (require :unf)
> (unf:normalize "文字列" :nfkc)

[API]
= パッケージ: unf

= 関数: nfd
(unf:nfd string &key start end)
　- stringのstartからendの範囲に対して、正規分解(NFD)による正規化処理を適用した結果を返す
　- 返り値の文字列の型は(simple-array character)
　- 引数が以下の条件を満たしている場合は、返り値として入力文字列がそのまま返される
　　1. (string= string (unf:nfd string))
　　2. (typep string '(simple-array character))
　　3. (and (= start 0) (= end (length str)))

= 関数: nfkd
(unf:nfkd string &key start end)
　- stringのstartからendの範囲に対して、互換分解(NFKD)による正規化処理を適用した結果を返す
　- その他はnfd関数と同様

= 関数: nfc
(unf:nfc string &key start end)
　- stringのstartからendの範囲に対して、正規合成(NFC)による正規化処理を適用した結果を返す
　- その他はnfd関数と同様

= 関数: nfkc
(unf:nfkc string &key start end)
　- stringのstartからendの範囲に対して、互換合成(NFKC)による正規化処理を適用した結果を返す
　- その他はnfd関数と同様

= 関数: normalize
(unf:normalize string normalization-form &key start end)
　- stringのstartからendの範囲に対して、正規化処理を適用した結果を返す
　- normalization-fromでは適用する正規化形式を指定する (:nfd, :nfkd, :nfc, :nfkc)
　- その他はnfd関数と同様


[依存パッケージ]
・charseq (0.1.8)
　- http://github.com/sile/charseq

[参考]
・Unicode正規化仕様
　・http://www.unicode.org/reports/tr15/

[バグ報告/連絡先]
・phjgt308@gmail.com
・http://sourceforge.jp/ticket/newticket.php?group_id=5256


[TODO]
・正規化用データ(data/*.lisp)の作成方法を文書化