diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | regparse.c | 4 | ||||
-rw-r--r-- | test/ruby/test_regexp.rb | 4 |
3 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Mon May 31 19:25:58 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * regparse.c (onig_syntax_warn): do not use external strings as + printf format. + Mon May 31 18:22:23 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * misc/ruby-mode.el (ruby-mode-set-encoding): skip shebang line diff --git a/regparse.c b/regparse.c index e413f55816..2caab909e1 100644 --- a/regparse.c +++ b/regparse.c @@ -2859,9 +2859,9 @@ onig_syntax_warn(ScanEnv *env, const char *fmt, ...) (const UChar *)fmt, args); va_end(args); if (env->sourcefile == NULL) - rb_warn((char *)buf); + rb_warn("%s", (char *)buf); else - rb_compile_warn(env->sourcefile, env->sourceline, (char *)buf); + rb_compile_warn(env->sourcefile, env->sourceline, "%s", (char *)buf); } static void diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index e853ee0369..12a2fa96fc 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -823,4 +823,8 @@ class TestRegexp < Test::Unit::TestCase assert_in_out_err('-w', 'x=/[\u3042\u3042]/', [], /duplicated/) assert_in_out_err('-w', 'x=/[\u3042\u3041-\u3043]/', [], /duplicated/) end + + def test_property_warn + assert_in_out_err('-w', 'x=/\p%s/', [], %r"warning: invalid Unicode Property \\p: /\\p%s/") + end end |