ruby-trunk-changes r33094 - r33106

naruse:r33094 2011-08-27 18:18:18 +0900

Time#strftime に %Z を渡すと Windows (日本語版)では非ASCII文字(CP932)の文字が含まれてしまうので、internal_encoding に変換するようにしています。 また Time#to_s は internal_encoding の指定があった時でも、ASCII文字しか含まないはずなのでエンコーディングは US-ASCII にするようにしています(r33073 の変更をとりやめ)。 [ruby-core:39092] [Bug #5226]

naruse:r33095 2011-08-27 18:45:15 +0900

rb_strftime_timespec() のプロトタイプ宣言を internal.h に書いていたのを time.c に移動。

ktsj:r33096 2011-08-27 18:59:48 +0900

r33064 で対処したのと似ていますが yield を含むメソッドの ensure 節で Proc.new で Proc オブジェクトを作成するとブロック内で return した時に "unexpected return" というエラーになってしまうのを修正。 rb_vm_rewrite_dfp_in_errinfo() という関数に errinfo の書き換え処理を切り出して Proc.new でも呼び出すようにしています。 [ruby-core:39125] [Bug #5234]

naruse:r33097 2011-08-27 19:06:25 +0900

rb_strftime_timespec() と rb_strftime() のプロトタイプ宣言をやっぱり time.c から internal.h に移動して、ruby/encoding.h を include 済みの時だけ見えるように #ifdef で囲んでます。

ktsj:r33099 2011-08-27 20:51:02 +0900

新規に作った関数 rb_vm_rewrite_dfp_in_errinfo() が return していないので戻り値の型を void に変更(警告を除去)。

ryan:r33102 2011-08-28 05:30:57 +0900

minitest 2.5.1 をマージしています。 MiniTest::Spec.register_spec_type に matcher をブロック渡しで指定する呼び方に対応しています。

svn:r33103 2011-08-28 05:31:01 +0900

version.h の日付更新。

nagachika:r33106 2011-08-28 15:53:47 +0900

ext/date/date_parse.c で一時 String オブジェクトを生成して中身を利用中にその String を格納した変数を別の一時オブジェクトで上書きしていたために GC される可能性があったので保護用の変数に格納するようにしています。また timezone の文字列のチェックの際にバッファの先頭よりも前の場所にアクセスしていたのを修正しています。 [ruby-dev:44409] [Bug #5213]