ruby-trunk-changes r55818 - r55821

今日は ENV のメソッドが返す文字列を taint するようにする修正や ENV の文字列の Encoding を決定する処理のリファクタリングなどがありました。

usa: r55818 2016-08-05 23:19:26 +0900

r55811 の ENV.assoc の Encoding 変換の変更でテストが失敗するようになったのを修正するため env_str_new() で Windows 版の時に返す文字列を taint しておくようにしています。

nobu: r55819 2016-08-06 00:39:46 +0900

ENV のメソッドが返す文字列を生成する env_str_new() から Encoding の指定を引数で受け取る env_enc_str_new() を切り出しています。またこれまで env_path_str_new() という関数でやってた Windows とそれ以外で Encoding を変えている処理も env_enc_str_new() を流用するようにして、これまで ENV.[] や ENV.fetch の実装でやってた環境変数が PATH の時のみ Encoding を変える処理を env_name_new() およびそこから呼ばれる env_encoding_for() という関数に切り出すリファクタリングをしています。 あと env_enc_str_new() で Windows 以外の環境でも返す文字列を taint しておくようにしています。

svn: r55820 2016-08-06 00:39:47 +0900

version.h の日付更新。

nobu: r55821 2016-08-06 09:35:33 +0900

id_table.h で enum rb_id_table_iterator_result という型に利用しない最後の定数として ID_TABLE_ITERATOR_RESULT_END を置くようにしています。 最近の gcc とかだと enum の定義の最後の要素の後にカンマがあってもエラーにはならないようですが、 C の文法としては NG なので、移植性のために絶対に最後に置く要素を作っておいて追加する要素は常に行末にカンマが付けられるようにするためだと思います。