ruby-changes:29208
From: nagachika <ko1@a...>
Date: Wed, 12 Jun 2013 23:23:53 +0900 (JST)
Subject: [ruby-changes:29208] nagachika:r41260 (ruby_2_0_0): merge revision(s) 41250: [Backport #8516]
nagachika 2013-06-12 23:23:39 +0900 (Wed, 12 Jun 2013) New Revision: 41260 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=41260 Log: merge revision(s) 41250: [Backport #8516] * io.c (io_getc): fix 7bit coderange condition, check if ascii read data instead of read length. [ruby-core:55444] [Bug #8516] Modified directories: branches/ruby_2_0_0/ Modified files: branches/ruby_2_0_0/ChangeLog branches/ruby_2_0_0/io.c branches/ruby_2_0_0/test/ruby/test_io_m17n.rb branches/ruby_2_0_0/version.h Index: ruby_2_0_0/ChangeLog =================================================================== --- ruby_2_0_0/ChangeLog (revision 41259) +++ ruby_2_0_0/ChangeLog (revision 41260) @@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ChangeLog#L1 +Wed Jun 12 23:05:41 2013 Nobuyoshi Nakada <nobu@r...> + + * io.c (io_getc): fix 7bit coderange condition, check if ascii read + data instead of read length. [ruby-core:55444] [Bug #8516] + Sun Jun 9 02:27:07 2013 Nobuyoshi Nakada <nobu@r...> * lib/mkmf.rb (install_dirs, with_destdir): prefix with DESTDIR Index: ruby_2_0_0/io.c =================================================================== --- ruby_2_0_0/io.c (revision 41259) +++ ruby_2_0_0/io.c (revision 41260) @@ -3385,7 +3385,11 @@ io_getc(rb_io_t *fptr, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/io.c#L3385 } else { io_shift_cbuf(fptr, MBCLEN_CHARFOUND_LEN(r), &str); - cr = ISASCII(r) ? ENC_CODERANGE_7BIT : ENC_CODERANGE_VALID; + cr = ENC_CODERANGE_VALID; + if (MBCLEN_CHARFOUND_LEN(r) == 1 && rb_enc_asciicompat(read_enc) && + ISASCII(RSTRING_PTR(str)[0])) { + cr = ENC_CODERANGE_7BIT; + } } str = io_enc_str(str, fptr); ENC_CODERANGE_SET(str, cr); Index: ruby_2_0_0/version.h =================================================================== --- ruby_2_0_0/version.h (revision 41259) +++ ruby_2_0_0/version.h (revision 41260) @@ -1,10 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/version.h#L1 #define RUBY_VERSION "2.0.0" -#define RUBY_RELEASE_DATE "2013-06-09" -#define RUBY_PATCHLEVEL 214 +#define RUBY_RELEASE_DATE "2013-06-12" +#define RUBY_PATCHLEVEL 215 #define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_MONTH 6 -#define RUBY_RELEASE_DAY 9 +#define RUBY_RELEASE_DAY 12 #include "ruby/version.h" Index: ruby_2_0_0/test/ruby/test_io_m17n.rb =================================================================== --- ruby_2_0_0/test/ruby/test_io_m17n.rb (revision 41259) +++ ruby_2_0_0/test/ruby/test_io_m17n.rb (revision 41260) @@ -2159,7 +2159,17 @@ EOT https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/test/ruby/test_io_m17n.rb#L2159 open("a", "wb") {|f| f.puts "a"} open("a", "rt") {|f| f.getc} } - assert(c.ascii_only?, "should be ascii_only #{bug4557}") + assert_predicate(c, :ascii_only?, bug4557) + end + + def test_getc_conversion + bug8516 = '[ruby-core:55444] [Bug #8516]' + c = with_tmpdir { + open("a", "wb") {|f| f.putc "\xe1"} + open("a", "r:iso-8859-1:utf-8") {|f| f.getc} + } + assert_not_predicate(c, :ascii_only?, bug8516) + assert_equal(1, c.size, bug8516) end def test_default_mode_on_dosish Property changes on: ruby_2_0_0 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r41250 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/