[前][次][番号順一覧][スレッド一覧]

ruby-changes:19953

From: nobu <ko1@a...>
Date: Sat, 11 Jun 2011 18:05:32 +0900 (JST)
Subject: [ruby-changes:19953] nobu:r32000 (trunk): * io.c (io_getc): should be 7bit if ascii. fixes #4557

nobu	2011-06-11 18:02:11 +0900 (Sat, 11 Jun 2011)

  New Revision: 32000

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32000

  Log:
    * io.c (io_getc): should be 7bit if ascii.  fixes #4557

  Modified files:
    trunk/ChangeLog
    trunk/io.c
    trunk/test/ruby/test_io_m17n.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31999)
+++ ChangeLog	(revision 32000)
@@ -1,3 +1,7 @@
+Sat Jun 11 18:02:09 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* io.c (io_getc): should be 7bit if ascii.  fixes #4557
+
 Sat Jun 11 16:52:16 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* numeric.c (rb_enc_uint_chr): fix message format. Bug#4869
Index: io.c
===================================================================
--- io.c	(revision 31999)
+++ io.c	(revision 32000)
@@ -2887,7 +2887,7 @@
 	}
 	else {
 	    io_shift_cbuf(fptr, MBCLEN_CHARFOUND_LEN(r), &str);
-	    cr = ENC_CODERANGE_VALID;
+	    cr = ISASCII(r) ? ENC_CODERANGE_7BIT : ENC_CODERANGE_VALID;
 	}
 	str = io_enc_str(str, fptr);
 	ENC_CODERANGE_SET(str, cr);
Index: test/ruby/test_io_m17n.rb
===================================================================
--- test/ruby/test_io_m17n.rb	(revision 31999)
+++ test/ruby/test_io_m17n.rb	(revision 32000)
@@ -2060,5 +2060,14 @@
            r.close
          end)
   end
+
+  def test_getc_ascii_only
+    bug4557 = '[ruby-core:35630]'
+    c = with_tmpdir {
+      open("a", "wb") {|f| f.puts "a"}
+      open("a", "rt") {|f| f.getc}
+    }
+    assert(c.ascii_only?, "should be ascii_only #{bug4557}")
+  end
 end
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]