今日は祝日でしたね。あっというまに終わってしまいましたけど……。さて、今日は文字エンコーディング関連のコミットが多いです。
naruse:r29435 2010-10-11 06:29:29 +0900
rb_io_set_encoding においてオブジェクトの型が T_FILE (組み込みの IO クラスを継承するクラスのインスタンスの内部表現の型)でない時に rb_funcall2 を使って "set_encoding" メソッドを呼び出している。rb_io_set_encoding 自体 IO#set_encoding の実装なのでそこでは常に T_FILE のはず。rb_stdio_set_default_encoding 経由で呼ばれた時に $stdin, $stdout, $stderr 等が別のクラス(たとえば StringIO)にすりかえられていた時のためと思われます。
- r オプションでロードするライブラリ内で $stdin 等を Tempfile や StringIO にすりかえると [BUG] で落ちる不具合が元みたいです。[ruby-dev:42356]
svn:r29436 2010-10-11 06:29:31 +0900
version.h の日付変更。
naruse:r29437 2010-10-11 06:54:22 +0900
StringIO#set_encoding に IO と同じく第2引数の internal_encoding の指定とオプションのハッシュ引数(共に省略可能)を追加しています。
naruse:r29438 2010-10-11 14:15:03 +0900
SystemCallError の子クラスである例外(Errno::E??? というやつ)の message にはロケールに依存した Encoding を設定するように。[ruby-dev:42358]
naruse:r29439 2010-10-11 17:43:31 +0900
ロケールが US-ASCII でも実際のメッセージの eoncoding が US-ASCII でなかったらそちらを優先するようにしています。
naruse:r29442 2010-10-11 20:23:35 +0900
Net::HTTP.get で content-encoding が "gzip" の時に取得した HTTPResponce.body の encoding を ASCII-8BIT に指定。
ちなみに元ネタは2ちゃんねるの書きこみ。2ちゃんねるもちゃんと観測されているんですね。