Closed cxxxr closed 9 years ago
detecting-buffer-sizeを大きめにすると正しく判定されました
デフォルトの_detecting-buffer-size_より先にASCII以外の(UTF-8以外とされるような)文字があるケースですね。_detecting-buffer-size_自体あまりよろしくないですよね…。
APIの整理が急務だと思っていて、その一環としてstreamやpathnameに対してはバッファサイズをoptionalに指定できるようにするつもりです。
ありがとうございます APIに関してそういう変更をしようとフォークしたんですが 英語が書けずコミットが終わりません
そういえばdetect-end-of-lineは改行コードが見つかるまで走査すればいいのならdetecting-buffer-sizeは必要ありませんね
それからベクタを一度だけ作ってその中で見ていくのはファイル全体を見ようとしたら ベクタが大きくなりすぎるのが気になります ある程度の大きさのベクタにその大きさ分だけデータを入れて見ていく動作を繰り返せたら良さそうです
確かに確かに。
そもそも*detecting-buffer-size*
なんて不要で、バッファサイズは引数で指定できるようにしたほうが、このissueのようなケースに対しては(全体としても)いいかなと思っていました。
具体的には
*detecting-buffer-size*
は消すdetect-encoding
とdetect-end-of-line
(名前短くしたい)をメソッドに
detect-external-format
と同じくベクタ、ストリーム、パスネームに対応&optional
で指定できるように
detect-
系メソッド全てに対してやる:full
でも渡すとかのような感じで。
メソッドにも&optional
とか使えるようなので(HyperSpec: defmethod)、pull requestをマージしたあとでそのような対応をしようかなと考えています。
結果としてdetect-external-format-from-file
は消すことになると思いますが、そのほうがスッキリしてていいのかな、と。
いいですね
detect-external-format-from-file
は自分で書いといてなんですがあまり良いものではないと思います
あっ。
を忘れるところでした。
別でAPI整理のissue立てようかな…。
別のissueにしたほうが良さそうですね
別issue(#22)にしたのでクローズします。
指定したファイルはhttps://raw.githubusercontent.com/xyzzy-022/xyzzy/develop/lisp/winhelp.l