ruby-trunk-changes r34355 - r34363

今日は open のモード指定の矛盾をエラーにする修正や URI::MainTo.build の不具合を修正しています。

knu:r34355 2012-01-23 00:56:03 +0900

misc/rdoc-mode.el の空白文字にマッチさせようとして正規表現の改行にマッチしてしまっていたところの修正と、imenu なるものをサポートしているそうです。

svn:r34356 2012-01-23 00:56:07 +0900

version.h の日付更新。

mrkn:r34357 2012-01-23 10:09:06 +0900

CGI.escape, CGI.unescape が返す文字列が引数のエンコーディングを保持することをチェックするテストを追加しています。 [ruby-dev:45147] [Bug #5924]

naruse:r34358 2012-01-23 16:56:20 +0900

IO.open などでオプション引数の :binmode => true が指定された時に external_encoding を ASCII-8BIT に設定するようにしています。 [ruby-core:42197] [Bug #5917]

naruse:r34359 2012-01-23 16:56:25 +0900

IO.open などで mode の文字列の引数で "b"(バイナリモード) や "t"(テキストモード)の指定と、オプション引数の :binmode, :textmode の指定で "rb", :binmode => false のように false が指定されて矛盾しているものがエラーになっていなかったので、そもそも mode 文字列でのモード指定とオプション引数での指定両方されているのをエラーにしています。 [ruby-core:42199] [Bug #5918]
正確にはオプション引数のたとえば :binmode が指定された時に既に mode で "b" が指定されていたらエラー、という風なので open(path, "rb", :textmode => false) はエラーにはなりませんし、矛盾もしていません(:textmode => true だと矛盾していることを指摘する例外になります)。しかし :textmode と :binmode が両方あってどちらも true, false を受け取れるって冗長ですね。

naruse:r34360 2012-01-23 17:12:52 +0900

URI::MailTo.build で Array#to_s が 1.8 の頃の "[]" などをつけずにただ各要素(を to_s で文字列にしたもの)を連結したものを返す仕様に依存している部分が残っていたので String#join を使うように修正しています。標準添付ライブラリにまだこんなのが残っていたとは。 [Bug #5840]

shyouhei:r34362 2012-01-23 21:25:19 +0900

Net::HTTP.connect で proxy 経由の https (SSL 利用時)の接続をする時にソケットに1行ずつ書き込みしていたのをまとめて write するようにしています。 [ruby-core:40201] [Feature #5460] 主に効率のためだと思いますが、場合によってはパケットが分割されるとプロキシで(?)問題がおきることもあるようなのでできるだけパケットが分割されないようにしています。 [ruby-list:48467]

shyouhei:r34363 2012-01-23 21:25:22 +0900

r34462 についての ChangeLog エントリの追加。