ruby-trunk-changes r53747 - r53758

今日は主に String#downcase の :folding オプションの追加や CGI.escapeHTML, CGI.unescapeHTML の ASCII 非互換エンコーディングの文字列対応などがありました。

duerst: r53747 2016-02-06 14:37:29 +0900

String#downcase の省略可能引数 flags に指定できるオプションに :fold というのを追加しています。よくわかりませんが "ß" -> "ss" と展開されたりするようですね。

duerst: r53748 2016-02-06 14:51:33 +0900

r53747 とも関連して正規表現の casefold のテストを追加しています。r53590 で追加した CaseFolding.txt からデータを読み込んでテストを生成するようにしているようです。

duerst: r53749 2016-02-06 15:18:38 +0900

String#downcase などの :folding オプションの対象となるコードポイントの下限を 0x00C0 から 0x00B5 まで引き下げています。 0x00B5 (micron sign) つまり "µ" が最小のコードポイントで folding による展開の対象になる文字みたいです。

nobu: r53750 2016-02-06 20:44:33 +0900

configure で存在チェックする型に __int64_t と __int128_t を追加しています。 OS X 向けだそうです。

svn: r53751 2016-02-06 20:44:34 +0900

version.h の日付更新。

nobu: r53752 2016-02-06 20:51:40 +0900

標準添付ライブラリ optparse.rb で ruby-mode.el の不具合によるハイライトの異常? を避けるため if 文を条件演算子 (? :) に変えたり、ブロックパラメータのパイプ記号に空白を入れたりしています。

nobu: r53753 2016-02-06 21:02:09 +0900

r52429 で defs/lex.c.blt で struct kwtable::name の型を int に変更したのに追随して lex.c.blt で明示的なキャストを追加しています。

nobu: r53754 2016-02-06 22:31:07 +0900

標準添付ライブラリ cgiCGI.escapeHTML および CGI.unescapeHTML で文字列が ASCII 非互換なエンコーディングだった時に置換用の正規表現もそのエンコーディングで作成するようにしています。 https://github.com/ruby/ruby/pull/1239

nobu: r53755 2016-02-06 23:23:26 +0900

r53750 で追加した __int64_t と __int128_t のチェックですが __int64 と __int128 のほうを優先するようにチェックの順番を変更しています。

naruse: r53756 2016-02-06 23:45:49 +0900

r53756 で追加した test/ruby/enc/test_regex_casefold.rb で CaseFolding.txt を読み込む時に ASCII-8BIT で読み込むように encoding の指定オプションを追加しています。

naruse: r53757 2016-02-07 02:56:47 +0900

r53750 および r53755 の __int64_t と __int128_t のチェック追加を revert しています。これらの型は C++ 用で古い gcc でのビルドでコンパイルエラーを引き起こしていたみたいです。

svn: r53758 2016-02-07 02:56:47 +0900

version.h の日付更新。