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]追記:

別環境でも再現した、ということでプログラムのバグとしてさくっと修正して頂いた。