yaskkserv の deb 化(4)
一部の W: には目をつぶって、出来上がったパッケージをインストールしようとすると、独自辞書への変換がうまくいかないようだ。
いくつかのホストで試してみたけど、いつも人名辞書の変換で黙り込み、しばらくすると /tmp/skkjisyo_normal.* が /tmp を使い切ってしまっているように見える。
場所を決めているのが dpkg なのか yaskkserv なのかわからないのでソースを探してみた。
$ grep -r skkjisyo_normal * source/skk/skk_jisyo.hpp: char tmp_filename_normal[] = "/tmp/skkjisyo_normal.XXXXXX"; $ grep -r tmp_filename_normal * source/skk/skk_jisyo.hpp: char tmp_filename_normal[] = "/tmp/skkjisyo_normal.XXXXXX"; source/skk/skk_jisyo.hpp: int normal_fd = mkstemp(tmp_filename_normal); source/skk/skk_jisyo.hpp: tmp_filename_normal, source/skk/skk_jisyo.hpp: if (unlink(tmp_filename_normal) == -1)
どうも、yaskkserv_make_dictionary が変換時に場所を決めうちして一時ファイルを作っているっぽい。
とはいえ、私では C のトラブル解決は厳しいし、人名辞書以外は全ての辞書がほぼ一瞬で変換できているので、例外として逃げとく?
ひとまず作者さんに確認だけお願いしてみて、その間にダメ元でもうちょっとソースおいかけてみる。それで解決しないなら trap で逃げる方向にしよう。
[2008-02-16]追記:
別環境でも再現した、ということでプログラムのバグとしてさくっと修正して頂いた。