ruby-changes:25124
From: usa <ko1@a...>
Date: Sun, 14 Oct 2012 01:23:34 +0900 (JST)
Subject: [ruby-changes:25124] usa:r37176 (ruby_1_9_3): merge revision(s) 37175:
usa 2012-10-14 01:23:17 +0900 (Sun, 14 Oct 2012) New Revision: 37176 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37176 Log: merge revision(s) 37175: * regparse.c (parse_char_class): should match with a hyphen after a range in a character class. * test/ruby/test_regexp.rb (TestRegexp#test_char_class): fixed wrong test. * test/ruby/test_regexp.rb (TestRegexp#check): now can accept the error message. * test/ruby/test_regexp.rb (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): renamed because the previous name was wrong. * test/ruby/test_regexp.rb (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): added more test pattern. Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/regparse.c branches/ruby_1_9_3/test/ruby/test_regexp.rb branches/ruby_1_9_3/version.h Index: ruby_1_9_3/regparse.c =================================================================== --- ruby_1_9_3/regparse.c (revision 37175) +++ ruby_1_9_3/regparse.c (revision 37176) @@ -4491,10 +4491,7 @@ if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC)) { CC_ESC_WARN(env, (UChar* )"-"); - if (tok->type == TK_CHAR_TYPE) - goto next_class; /* [0-9-\s] is allowed as [0-9\-\s] */ - else - goto sb_char; /* [0-9-a] is allowed as [0-9\-a] */ + goto range_end_val; /* [0-9-a] is allowed as [0-9\-a] */ } r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; goto err; Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 37175) +++ ruby_1_9_3/ChangeLog (revision 37176) @@ -1,3 +1,22 @@ +Sun Oct 14 01:21:42 2012 NAKAMURA Usaku <usa@r...> + + * regparse.c (parse_char_class): should match with a hyphen after a + range in a character class. + + * test/ruby/test_regexp.rb (TestRegexp#test_char_class): fixed wrong + test. + + * test/ruby/test_regexp.rb (TestRegexp#check): now can accept the + error message. + + * test/ruby/test_regexp.rb + (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): renamed + because the previous name was wrong. + + * test/ruby/test_regexp.rb + (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): added + more test pattern. + Sat Oct 13 01:41:38 2012 NAKAMURA Usaku <usa@r...> * regparse.c (parse_char_class): also need to check the type of token Index: ruby_1_9_3/version.h =================================================================== --- ruby_1_9_3/version.h (revision 37175) +++ ruby_1_9_3/version.h (revision 37176) @@ -1,10 +1,10 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 288 +#define RUBY_PATCHLEVEL 289 -#define RUBY_RELEASE_DATE "2012-10-13" +#define RUBY_RELEASE_DATE "2012-10-14" #define RUBY_RELEASE_YEAR 2012 #define RUBY_RELEASE_MONTH 10 -#define RUBY_RELEASE_DAY 13 +#define RUBY_RELEASE_DAY 14 #include "ruby/version.h" Index: ruby_1_9_3/test/ruby/test_regexp.rb =================================================================== --- ruby_1_9_3/test/ruby/test_regexp.rb (revision 37175) +++ ruby_1_9_3/test/ruby/test_regexp.rb (revision 37176) @@ -498,17 +498,17 @@ assert(m.tainted?) end - def check(re, ss, fs = []) + def check(re, ss, fs = [], msg = nil) re = Regexp.new(re) unless re.is_a?(Regexp) ss = [ss] unless ss.is_a?(Array) ss.each do |e, s| s ||= e - assert_match(re, s) + assert_match(re, s, msg) m = re.match(s) - assert_equal(e, m[0]) + assert_equal(e, m[0], msg) end fs = [fs] unless fs.is_a?(Array) - fs.each {|s| assert_no_match(re, s) } + fs.each {|s| assert_no_match(re, s, msg) } end def failcheck(re) @@ -688,7 +688,7 @@ check(/\A[a-b-]\z/, %w(a b -), ["", "c"]) check('\A[a-b-&&\w]\z', %w(a b), ["", "-"]) check('\A[a-b-&&\W]\z', "-", ["", "a", "b"]) - check('\A[a-c-e]\z', %w(a b c e), %w(- d)) # is it OK? + check('\A[a-c-e]\z', %w(a b c e -), %w(d)) check(/\A[a-f&&[^b-c]&&[^e]]\z/, %w(a d f), %w(b c e g 0)) check(/\A[[^b-c]&&[^e]&&a-f]\z/, %w(a d f), %w(b c e g 0)) check(/\A[\n\r\t]\z/, ["\n", "\r", "\t"]) @@ -868,11 +868,11 @@ assert_equal(1, error.message.scan(/.*invalid .*escape.*/i).size, bug3539) end - def test_raw_hyphen_and_type_char_after_range + def test_raw_hyphen_and_tk_char_type_after_range bug6853 = '[ruby-core:47115]' begin verbose, $VERBOSE = $VERBOSE, nil - assert_match(/[0-1-\s]/, ' ', bug6853) + check(/[0-1-\s]/, [' ', '-'], [], bug6853) ensure $VERBOSE = verbose end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/