ruby-trunk-changes r47230 - r47242

今日は Windows 版での端末のエスケープシークエンスのサポートの改良などがありました。

hsbt: r47230 2014-08-21 12:24:06 +0900

lib/net/imap.rb のコメントアウトされていたコードを削除しています。

svn: r47231 2014-08-21 12:24:17 +0900

version.h の日付更新。

hsbt: r47232 2014-08-21 12:40:42 +0900

lib/net/imap.rb の if __FILE__ == $0 で括られていたサンプルコードを sample/net-imap.rb に分離しています。

svn: r47233 2014-08-21 12:40:52 +0900

r47232 で新規追加されたファイルの svn property を設定しています。

hsbt: r47234 2014-08-21 12:55:52 +0900

.gitignore に ChangeLog-1.8.0 というのがあったのを ChangeLog-* に変更しています。 コミットメッセージ自動生成のツールの動作との協調のためっぽいですが詳細はよくみていません。 参考URL: http://mkosaki.blog46.fc2.com/blog-entry-1284.html

hsbt: r47235 2014-08-21 13:23:43 +0900

lib/drb/acl.rb の if __FILE__ == $0 で括ったサンプルコードも sample/drb/acl.rb に分離しています。

hsbt: r47236 2014-08-21 13:23:56 +0900

lib/rinda/ring.rb からも if __FILE__ == $0 で括ったサンプルコードを sample/rinda-ring.rb に分離しています。

svn: r47237 2014-08-21 13:24:04 +0900

r47236 で新規追加したファイルの svn property の設定。あれ、r47235 で追加した sample/drb/acl.rb は?

nobu: r47238 2014-08-21 13:39:28 +0900

Struct#inspect の実装で rb_obj_class() の戻り値を rb_class_name() に渡していたのですが、rb_obj_class() はオブジェクトの struct RBasic::klass を rb_class_real() に渡して Ruby スクリプトから見えるクラスを(内部的には特異クラスや prepend した Module のための IClass が挟まれてたりするので、それをスキップするため)取得するようになっていて、rb_obj_class() も同様の処理が入っていて重複しているので、より直接的な関数 rb_class_path() を呼ぶように変更しています。

nobu: r47239 2014-08-21 13:39:32 +0900

数値の比較演算子での ArgumentError 例外のメッセージに組込むクラス名を作る時に rb_class_path() で直接文字列化するのではなくて Class オブジェクトのまま PRIsVALUE での埋め込みに渡して Module#to_s メソッドによる変換を通すことで to_s メソッドの再定義をしていたクラスでそれが有効になるようにしています。

hsbt: r47240 2014-08-21 14:45:47 +0900

lib/e2mmap.rb のコメントアウトされていたデバッグ用を思われるコードを削除しています。

nobu: r47241 2014-08-21 17:10:34 +0900

Windows 版での reverse (ESC[7m) というエスケープシークエンスが正常に働かない不具合を修正。 Windows 版はエミュレートしているので、reverse 用の引数を追加して foreground と background の入れ換えする実装を追加しているようです。詳細は読んでいませんが、地道なエミュレート大変そうです。 [ruby-dev:48483] [Bug #10158]

nobu: r47242 2014-08-21 22:10:34 +0900

r47241 の続きで、追加したテストでの setup/teardown での端末のリセットを reset メソッドとしてまとめて alias で setup/teardown というメソッド名にみせるようにしています。