ruby-trunk-changes r36901 - r36913

今日は Dir.glob でパターンに "**" を使った時のマッチの不具合修正などがありました。

nobu:r36901 2012-09-05 10:44:20 +0900

dir.c で宣言されている enum answer という型の UNKNOWN, YES, NO の NO が 偽(0)になるように入れ替えています。

svn:r36902 2012-09-05 10:44:24 +0900

version.h の日付更新。

nobu:r36903 2012-09-05 10:44:36 +0900

Dir.glob でピリオドから始まるファイルや ".", ".." などをスキップする処理をパスを連結する処理の前にして、無駄な文字列を生成しないようにしています。

nobu:r36904 2012-09-05 12:03:24 +0900

Dir.glob に UTF-16 の文字列を渡した時などのテストを test_dir.rb から test_dir_m17n.rb に移動しています。

nobu:r36905 2012-09-05 13:30:10 +0900

Dir.glob に "**" を渡して再帰的マッチをする時に末端のパスがマッチしていても展開されないことがある不具合を修正しています。おおお、こんな不具合が残っていたとは…… [ruby-core:47418] [Bug #6977]

nobu:r36906 2012-09-05 14:29:37 +0900

file.c の getcwdofdrv() と append_fspath() という関数は既に cygwin 以外で利用されなくなっていたので #ifndef _WIN32 で括るようにしています。

nobu:r36907 2012-09-05 14:29:41 +0900

win32/file.c の関数定義のスタイルなどの体裁の修正。

nobu:r36908 2012-09-05 14:29:44 +0900

win32/file.c の File.expand_path の Windows 用実装 rb_file_expand_path_internal() の "~" の展開の有無の判定している条件式を解体して少しシンプルにしています。

nobu:r36909 2012-09-05 14:29:46 +0900

r36867 の common.mk でターゲット部に {$(VPATH)} を利用しないようにしているのを一部 revert して parse.c, parse.h のターゲット部には {$(VPATH)} を付けています。ソースディレクトリ以外の場所でビルドしている時にソースディレクトリの parse.h, parse.c を利用するようにするために必要なようです。 nmake でのビルドは大丈夫なんでしょうか。

naruse:r36910 2012-09-05 15:23:13 +0900

Ripper のテスト test/ripper/test_parser_events.rb で未使用の変数とメソッドの引数にかっこをつける警告除去をしています。
しかしこのメソッド引数にかっこをつけるほうはかっこがないと曖昧だという警告なんですが、どういう解釈と衝突しているんでしょうか。

naruse:r36911 2012-09-05 15:23:20 +0900

parse.y にコンパイル時の警告メッセージ出力用の関数マクロ群に rb_warn4() というファイル名と行番号を渡せるものを追加して、rb_compile_warn() を直接呼んでいたところでそのマクロを使うようにリファクタリングしています。

shyouhei:r36912 2012-09-05 16:00:36 +0900

Travis CI でのビルド/テストの設定ファイル .travis.yml で irc への通知メッセージのテンプレートを指定するようにしています。

usa:r36913 2012-09-05 19:22:49 +0900

r36911 で追加した parse.y の警告用マクロ rb_warn4() を rb_warn4S() と改名しています。末尾の S には引数に文字列を受け取るという意味があるようです。そのため Ripper 用のマクロは ripper_warnI() を使っていたのを ripper_warnS() に変更し、さらにコメントアウトされていた ripper_warnS() を復活させています。