ruby-trunk-changes r34792 - r34812

今日は Dir がパスのエンコーディングを扱う方法の修正や文字列リテラル内のバックスラッシュの扱いの再修正などがありました。

nobu:r34792 2012-02-25 06:55:34 +0900

r34788 で C の文字列と VALUE の文字列を関数に渡すのを入れ替え忘れているところがあって修正しています。 [ruby-core:42864] [Bug #6077]

svn:r34793 2012-02-25 06:55:48 +0900

version.h の日付更新。

nobu:r34794 2012-02-25 07:53:42 +0900

Dir のパス名をファイルシステムエンコーディングに変換する前の渡された文字列も保存しておいて、例外発生時のメッセージに渡すパスはオリジナルのほうを渡すことで表示できるメッセージにするようにしています。 [ruby-dev:45279][Bug #6071]

nobu:r34795 2012-02-25 07:53:51 +0900

同じく Dir#inspect と IO#inspect でも C の文字列そのまま扱わずに String として操作することでパスの Encoding を保持するようにしています。 [ruby-dev:45280] [Bug #6072]

nobu:r34796 2012-02-25 07:54:00 +0900

昨日の r34776 の修正で文字列リテラル内の non-ascii 文字の前のバックスラッシュを残すようにしましたが、 ascii 文字の時と同様にシングルクオート文字列の中でのみ残すようにしています。 [ruby-dev:45281] [Bug #6069]

nobu:r34797 2012-02-25 07:54:31 +0900

追加された test/test_curses.rb の svn property 設定。

akr:r34798 2012-02-25 10:36:33 +0900

Curses::VERSION の定義でライブラリが特定できなかった時にだたの "(unknown)" から "curses (unknown)" に変更しています。 DBM::VERSION も "(unknown)" は "ndbm (unknown)" に変更。

akr:r34799 2012-02-25 11:09:22 +0900

Curses::VERSION や DBM::VERSION の定義で条件コンパイルの分岐の各所で rb_define_const していたのを、変数に文字列を入れておいてあとでまとめて rb_define_const を呼ぶようにしています。

nobu:r34800 2012-02-25 14:47:16 +0900

DL や Fiddle の認識する型に size_t, ptrdiff_t, intptr_t を追加しています。 [ruby-core:42460][Feature #5992]

naruse:r34801 2012-02-25 16:08:44 +0900

NEWS ファイルに Hash() メソッドの追加について追記しています。 [ruby-core:29462] [Feature #3131]

naruse:r34802 2012-02-25 16:08:47 +0900

enc/depend, ext/extmk.rb, ext/ripper/tools/generate.rb から未使用の変数、ブロック変数の名前重複、フォーマット指示子未使用の String#% など警告を除去しています。

naruse:r34803 2012-02-25 16:20:00 +0900

Complex の Marshal.load 時に Array としてロードしたオブジェクトを扱うのでそこでサイズをチェックするようにしています。不正な(壊れた)文字列を load しようとすると不正なメモリアクセスしてしまう可能性がありました。 [ruby-core:42860] [Bug #6076]

akr:r34804 2012-02-25 16:26:22 +0900

DBM::VERSION の rdoc に取りうる値の例を記述しています。

akr:r34805 2012-02-25 16:31:13 +0900

Curses::VERSION の rdoc にも同じく取りうる内容を記述しています。

naruse:r34807 2012-02-25 16:41:07 +0900

r34779 で追加したテスト部分の修正。 Net::HTTP でソケットが切断された時の例外として EOFError だけでなく Errno::ECONNRESET も受け付けるようにしています。

nobu:r34808 2012-02-25 16:58:14 +0900

r34728 で make test-all の時に常に拡張ライブラリのビルドも含めていたのをやめています。

naruse:r34809 2012-02-25 17:08:55 +0900

FileUtils で末尾の "/" を削除するのに String#sub を使っていたのを String#chomp(?/) を使うようにリファクタリングしています。このほうが効率的です。

akr:r34812 2012-02-25 17:42:00 +0900

拡張ライブラリ dbm のライブラリチェックでヘッダをチェックする順序を変更しています。どのライブラリのヘッダかがわかりにくい(可能性の多い)ものほど後でチェックするようにしています)。