ruby-trunk-changes r47598 - r47603

今日は正規表現エンジン Onigmo(鬼雲)の更新がありました。

naruse: r47598 2014-09-16 01:18:41 +0900

正規表現エンジン Onigmo(鬼雲)の 5.15.0 をマージしています。 ざっとみた感じ casefold の処理の修正や POSIX の文字クラス(POSIXブラケット表現)の処理の修正などが含まれているようです。

svn: r47599 2014-09-16 01:18:54 +0900

version.h の日付更新。

nobu: r47600 2014-09-16 11:44:04 +0900

sprintf の実装で潜在的オーバフローの修正のためローカル変数の型を int から long へ変更しています。

nobu: r47601 2014-09-16 11:44:10 +0900

r47598 の Onigmo のマージで入った regparse.c の未使用変数の削除。コンパイラの警告除去。

nobu: r47602 2014-09-16 11:44:19 +0900

regnenc.h で宣言されている構造体 PosixBracketEntryType の name はポインタですが静的領域の文字列リテラルへのポインタのみ格納していて、しかも文字列長が短いので構造体内に埋め込むようにしています。…あれバッファが6バイト固定になっていますけど、POSIX_BRACKET_ENTRY_INIT() の引数に 6文字の "XDigit"/"xdigit" がありますね。これ長さ足りないのでは…? あと構造体メンバの順番も入れ替えて packing しています。
[追記]strncmp(3) などで比較しているので NUL 文字なしでも大丈夫そうです。また sizeof("xdigit") - 1 だと1文字足りないのでは…と思いましたが sizeof("literal") は NUL 文字のぶんを含む長さを返すので問題なさそうでした。[/追記]

nobu: r47603 2014-09-16 19:18:53 +0900

benchmark/bm_app_aobench.rb のコメントに記述されている URL がリンク切れになっているので新しい URL に更新しています。 [ruby-dev:48550] [Feature #10247]