ruby-trunk-changes r31349 - r31366

Date のリファクタリングと mingw64 環境の対応、それに ISO-2022-JP-KDDI(おそらく絵文字のエンコーディング)の変換テーブルの修正などがありました。

tadf:r31349 2011-04-27 00:02:10 +0900

Date#strftime で localtime の utc からの差分を取得し忘れていたのを取得するようにしています。

svn:r31350 2011-04-27 00:02:13 +0900

version.h の日付更新。

nobu:r31351 2011-04-27 00:50:09 +0900

mingw で ftruncate64, truncate64, ftello64, fseeko64 の存在をチェックして 64bit 版があればそれを、なければ自前実装の 32bit 版を利用するようにしています。[ruby-core:35678] [Bug #4564]

nobu:r31352 2011-04-27 00:51:04 +0900

rb_file_truncate のエラー時に char * を期待している rb_sys_fail() に String の VALUE を渡してしまっていたので rb_sys_fail_path() に変更しています。

nobu:r31353 2011-04-27 00:52:35 +0900

Encoding::Converter.new の rdoc の :crlf_newline, :cr_newline オプションの説明を修正。

nobu:r31354 2011-04-27 00:54:14 +0900

エンコーディング変換の時に利用しているビットフラグの ECONV_UNIVERSAL_NEWLINE_DECORATOR、ECONV_CRLF_NEWLINE_DECORATOR、ECONV_CR_NEWLINE_DECORATOR を包括する ECONV_NEWLINE_DECORATOR_MASK というビットマスク定数を導入してリファクタリングしています。

nobu:r31355 2011-04-27 00:55:21 +0900

Enconding::Converter.new の 改行の変換オプションの処理の整理と open のオプションで :universal_newline などのオプションを渡すと自動的な変換のフラグを操作できるようにしています。
しかし open のオプション引数の :textmode とかそもそも知りませんでした。まだまだ奥が深いなー。

nobu:r31356 2011-04-27 00:55:58 +0900

Encoding::Converter などのエンコーディング変換のオプションに :newline を追加して、その Hash に :universal, :crlf, :cr, :lf などをキーとして指定する書きかたをサポート。ただし #ifdef ENABLE_ECONV_NEWLINE_OPTION で定義されているので通常は有効になっていないものと思います。デバッグ用?

nobu:r31357 2011-04-27 00:57:04 +0900

行末の空白を削除。

tadf:r31358 2011-04-27 01:02:25 +0900

date の修正です。日付の検証用メソッドを修正し、さらにデバッグ用にビルドした時だけ有効になるようにしています。これに伴い date のテストで検証用メソッドを利用しているものは skip されるようになりました。

現在 date のテストで skip が多数発生していますが skip は「いずれ直す」の意味じゃないかと思うので、環境やビルドオプション依存のものはただ return するだけでいいんじゃないでしょうか。

tadf:r31359 2011-04-27 01:05:49 +0900

date のテスト TestDateStrftime で Time#strftime が "%G" を受け付けない時にテストケースをスルーしていたのを明示的な skip にしています。これもスルーでいいんじゃないですかね。

tadf:r31360 2011-04-27 01:09:14 +0900

ComplexRational_Test で Rational が未定義の時(Rational は現在組み込みなのでそういうことはないと思いますが)にテストをすぐ return してスルーしていたのを明示的な skip にしています。

nobu:r31361 2011-04-27 01:14:26 +0900

r31278 の mingw での frexp(), modf() の警告除去のためのトリックを再修正しています。うーんなにがなにやら。

nobu:r31362 2011-04-27 01:17:01 +0900

Encoding.find に Encoding オブジェクトそのものを渡しても受け付けるように修正しています。

tadf:r31363 2011-04-27 01:23:05 +0900

date のリファクタリングです。 zone_to_diff() という関数を date_zone_to_diff に名称を変更し、また同じ内容を直接書いていた場所を関数呼び出しにおきかえています。

nobu:r31364 2011-04-27 01:30:27 +0900

r31362 のためのテストとして Encoding.find に Encoding を渡す assert を追加しています。

nobu:r31365 2011-04-27 07:42:46 +0900

configure によるコマンドラインツール "strip" の検出が Windows(mingw) でうまく動作しないのを修正し、また環境によってオプションが変化するのにも対応しています。 [ruby-core:35909]. [Bug #4617]

naruse:r31366 2011-04-27 11:45:36 +0900

文字コード変換テーブルで ISO-2022-JP-KDDI(絵文字?)と UTF8-KDDI の変換 CP932UDA を削除しています。って書いておいてなんですが具体的な影響はよくわかりません。stateless-iso-2022-jp を実装している emacs-mule は 0x7fxx の範囲をサポートしていないけど CP932 UDA は 0x7Fxx-92xx の範囲にあり扱えないため、とのこと。