10/06/07 16:20:48 ESewaOWk
えーとまずプチ将棋だが、どこか化けてるとこある?
URLリンク(www.dotup.org)
お読みください.txt はたしかに最初は判定ミスするので、ltraceしてみたところ
g_converter_convert()->g_error_free()->g_utf8_validate()となってた。
geditソースを見たところ、gedit-smart-charset-converter.cのtry_convert()がクサイ。
エラー処理を見たところ、G_CONVERT_ERROR_PARTIAL_INPUTで一回成功処理に入るが、
その後g_utf8_validate()で再度却下されてエラーで終わるみたい。
しかもその周辺のコメントには/* FIXME が入ってて、どうも悪いコードが残ってる様子。
ところでPARTIAL_INPUTてなんだって話で、バッファの途中で処理を中断?。
つまり、大きなファイルでは問答無用でエラー?と予想して、
お読みください.txt をddでサイズ変更していったところ、8192以下ならちゃんと判定した。
8192でソースgrepしたところ
gedit-gio-document-loader.c:#define READ_CHUNK_SIZE 8192
で、どうやらこのサイズより大きなファイルでは判定ミスしやすいぽいことがわかった。
ふー、上流の人が直すか、別のエディタをデフォルトにするって感じかなー