ruby-trunk-changes r50045 - r50056

今日は Windows 向けのファイル操作関連の関数のリファクタリングなどがありました。

nobu: r50045 2015-03-22 08:09:49 +0900

depend ファイルの自動生成された依存関係に {$(VPATH)} という nmake 以外で syntax error になる書きかたがあるので ext/ripper/ripper.c や /ext/rbconfig/sizeof/sizes.c の生成時に sed でこの部分を削って make に渡すようにしています。

svn: r50046 2015-03-22 08:10:00 +0900

version.h の日付更新。

nobu: r50047 2015-03-22 09:51:31 +0900

tool/make-snapshot で Makefile.in から @VAR@ を環境変数かもしくはデフォルトの設定値で置換して Makefile を生成して make を呼ぶようにしています。これまでは make の引数で変数を指定するようになっていました。

nobu: r50048 2015-03-22 09:53:17 +0900

r50039 で CONFIGURE 変数で configure ファイル名を保持するようになったので tool/make-snapshot でも置換対象として追加しています。

nobu: r50049 2015-03-22 11:23:03 +0900

win32/win32.c で wstati64() からパス名を生成する部分を name_for_stat() という static 関数として切り出すリファクタリング

nobu: r50050 2015-03-22 11:23:21 +0900

win32/win32.c の rb_w32_fstati64() から GetFileInformationByHandle() の呼び出しと struct stati64 のメンバの補完部分を stati64_handle() という関数に切り出すリファクタリング

nobu: r50051 2015-03-22 11:26:28 +0900

win32/win32.c の winnt_stat() から GetFileAttributesExW() が失敗した時に FindFirstFileW() に fallback する処理を stat_by_find() という関数に切り出すリファクタリング

nobu: r50052 2015-03-22 11:26:54 +0900

win32/win32.c の winnt_stat() からさらにパス名からドライブ名を切り出すかもしくはカレントドライブ名を取得する処理を path_drive() という関数に切り出すリファクタリング

nobu: r50054 2015-03-22 13:54:35 +0900

win32/file.c の rb_file_expand_path_internal() でパスの長さを mbstr_to_wstr() に渡す時に long -> int のキャストがあるためとても長い文字列を渡そうとするとサイズの切り詰めが発生してしまうのをさけるため事前にチェックして例外を発生させるようにしています。

kou: r50055 2015-03-22 22:08:47 +0900

doc/etc.rd.ja のマジックコメント、というか Emacs のコマンド行でエンコーディングeuc-jp のままだったので現状の utf-8 に修正しています。

nobu: r50056 2015-03-22 23:31:53 +0900

variable.c のクラス名からクラスオブジェクトを得る rb_path_to_class() でクラスがみつからなかった時の例外にクラス名を埋め込む時に format 文字列の精度の指定で切り詰めていたのを、rb_str_subseq() で部分文字列を生成して PRIsVALUE で埋め込むようにしています。