diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-19 14:33:11 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-19 14:33:11 +0000 |
commit | 29b836ff24d246c8bf6aa034b9d4176d41ad5b65 (patch) | |
tree | fb083a7ac4d74bfb6b3afb42f8872c51fc8c7f12 | |
parent | c9d8e7d8bcec4f76294122656de9523791a0021f (diff) |
* parse.y (rb_symname_p): fixed wrong validation. [ruby-dev:28047]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | parse.y | 5 | ||||
-rw-r--r-- | test/ruby/test_symbol.rb | 27 |
3 files changed, 37 insertions, 3 deletions
@@ -1,3 +1,7 @@ +Mon Dec 19 23:32:39 2005 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (rb_symname_p): fixed wrong validation. [ruby-dev:28047] + Sat Dec 17 03:57:01 2005 Tanaka Akira <akr@m17n.org> * bignum.c (rb_big_rshift): fix a GC problem on @@ -20,7 +24,7 @@ Thu Dec 15 12:35:14 2005 Yukihiro Matsumoto <matz@ruby-lang.org> Thu Dec 15 01:33:31 2005 Tanaka Akira <akr@m17n.org> - * ext/zlib/zlib.c (zstream_run): fix a GC problem by tail call on + * ext/zlib/zlib.c (zstream_run): fix a GC problem by tail call on x86_64 with gcc 4.0.3 20051111 (prerelease) (Debian 4.0.2-4) Wed Dec 14 12:11:46 2005 WATANABE Hirofumi <eban@ruby-lang.org> @@ -30,7 +34,7 @@ Wed Dec 14 12:11:46 2005 WATANABE Hirofumi <eban@ruby-lang.org> Wed Dec 14 12:01:26 2005 Tanaka Akira <akr@m17n.org> - * marshal.c (r_object0): fix a GC problem for reading a bignum on + * marshal.c (r_object0): fix a GC problem for reading a bignum on IA64 with gcc 3.3.5 (Debian 1:3.3.5-13). Tue Dec 13 12:23:47 2005 Tanaka Akira <akr@m17n.org> @@ -5940,7 +5940,9 @@ rb_symname_p(name) break; case '>': - if (*++m == '>') ++m; + switch (*++m) { + case '>': case '=': ++m; break; + } break; case '=': @@ -5960,6 +5962,7 @@ rb_symname_p(name) break; case '|': case '^': case '&': case '/': case '%': case '~': case '`': + ++m; break; case '[': diff --git a/test/ruby/test_symbol.rb b/test/ruby/test_symbol.rb index b6dd203596..2ccfe64c92 100644 --- a/test/ruby/test_symbol.rb +++ b/test/ruby/test_symbol.rb @@ -29,6 +29,33 @@ class TestSymbol < Test::Unit::TestCase assert_inspect_evaled(':foo') assert_inspect_evaled(':foo!') assert_inspect_evaled(':bar?') + assert_inspect_evaled(':<<') + assert_inspect_evaled(':>>') + assert_inspect_evaled(':<=') + assert_inspect_evaled(':>=') + assert_inspect_evaled(':=~') + assert_inspect_evaled(':==') + assert_inspect_evaled(':===') + assert_raise(SyntaxError) {eval ':='} + assert_inspect_evaled(':*') + assert_inspect_evaled(':**') + assert_raise(SyntaxError) {eval ':***'} + assert_inspect_evaled(':+') + assert_inspect_evaled(':-') + assert_inspect_evaled(':+@') + assert_inspect_evaled(':-@') + assert_inspect_evaled(':|') + assert_inspect_evaled(':^') + assert_inspect_evaled(':&') + assert_inspect_evaled(':/') + assert_inspect_evaled(':%') + assert_inspect_evaled(':~') + assert_inspect_evaled(':`') + assert_inspect_evaled(':[]') + assert_inspect_evaled(':[]=') + assert_raise(SyntaxError) {eval ':||'} + assert_raise(SyntaxError) {eval ':&&'} + assert_raise(SyntaxError) {eval ':['} end def test_inspect_dollar |