ruby-trunk-changes r47302 - r47308

今日はほぼ IO まわりの例外メッセージや警告メッセージで文字列埋め込みに PRIsVALUE を利用するようにする変更だけでした。

nobu: r47302 2014-08-28 14:55:05 +0900

IO.new にブロックを渡した時の警告メッセージ(IO.new は open と違ってブロックを呼び出さないので、誤って渡したのを気づかせるための警告が出る)に埋め込むクラス名を PRIsVALUE を使うことでエンコーディングを保持するようにしています。

nobu: r47303 2014-08-28 14:55:08 +0900

IO#advice で発生させる例外のメッセージでも埋め込みに PRIsVALUE を利用して VALUE 型のまま埋め込みするようにしています。

svn: r47304 2014-08-28 14:55:20 +0900

version.h の日付更新。

nobu: r47305 2014-08-28 14:55:22 +0900

IO.open などのエンコーディングのオプション解析で、指定が(external_encoding/internal_encoding と encoding オプションで)重複した時の警告メッセージに埋め込む文字列を %s ではなくて PRIsVALUE で埋め込むことでエンコーディングを保持するようにしています。

nobu: r47306 2014-08-28 15:18:30 +0900

ARGF のファイル切り替え時の警告メッセージでも PRIsVALUE を使ってファイル名を埋め込むことでエンコーディングを保持するようにしています。

nobu: r47307 2014-08-28 17:27:53 +0900

r47305 で追加したテストで open がブロックなしで呼ばれていたため file descriptor が leak していたのでブロックを渡して閉じるように修正しています。

nobu: r47308 2014-08-28 21:01:43 +0900

r47303 で変更した IO#advise のテストで locale が UTF-8 でない時を考慮して正規表現に埋め込む文字列に Regexp.quote で正規表現のメタキャラクタをエスケープさせるようにしています。