mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* io.c (io_ungetc): raise NotImplementedError when ungetc is called
against dummy encoding IO. * io.c (rb_io_getline_1): ditto when gets with delimiter is called. * io.c (io_getc): ditto when getc is called. * test/ruby/test_io_m17n.rb (test_terminator_stateful_conversion, test_getc_stateful_conversion, test_ungetc_stateful_conversion): these tests should raise NotImplementedError. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									d866ba69a1
								
							
						
					
					
						commit
						be9994a03a
					
				
					 3 changed files with 54 additions and 9 deletions
				
			
		|  | @ -161,11 +161,13 @@ EOT | |||
|     with_tmpdir { | ||||
|       src = "before \e$B\x23\x30\x23\x31\e(B after".force_encoding("iso-2022-jp") | ||||
|       generate_file('tmp', src) | ||||
|       s = open("tmp", "r:iso-2022-jp:euc-jp") {|f| | ||||
|         f.gets("0".force_encoding("euc-jp")) | ||||
|       } | ||||
|       assert_equal(Encoding.find("euc-jp"), s.encoding) | ||||
|       assert_str_equal(src.encode("euc-jp"), s) | ||||
|       assert_raise(NotImplementedError) do | ||||
|         s = open("tmp", "r:iso-2022-jp:euc-jp") {|f| | ||||
|           f.gets("0".force_encoding("euc-jp")) | ||||
|         } | ||||
|         assert_equal(Encoding.find("euc-jp"), s.encoding) | ||||
|         assert_str_equal(src.encode("euc-jp"), s) | ||||
|       end | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|  | @ -218,10 +220,27 @@ EOT | |||
|     with_tmpdir { | ||||
|       src = "\e$B\x23\x30\x23\x31\e(B".force_encoding("iso-2022-jp") | ||||
|       generate_file('tmp', src) | ||||
|       open("tmp", "r:iso-2022-jp:euc-jp") {|f| | ||||
|         assert_equal("\xa3\xb0".force_encoding("euc-jp"), f.getc) | ||||
|         assert_equal("\xa3\xb1".force_encoding("euc-jp"), f.getc) | ||||
|       } | ||||
|       assert_raise(NotImplementedError) do | ||||
|         open("tmp", "r:iso-2022-jp:euc-jp") {|f| | ||||
|           assert_equal("\xa3\xb0".force_encoding("euc-jp"), f.getc) | ||||
|           assert_equal("\xa3\xb1".force_encoding("euc-jp"), f.getc) | ||||
|         } | ||||
|       end | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   def test_ungetc_stateful_conversion | ||||
|     with_tmpdir { | ||||
|       src = "before \e$B\x23\x30\x23\x31\e(B after".force_encoding("iso-2022-jp") | ||||
|       generate_file('tmp', src) | ||||
|       assert_raise(NotImplementedError) do | ||||
|         s = open("tmp", "r:iso-2022-jp:euc-jp") {|f| | ||||
|           f.ungetc("0".force_encoding("euc-jp")) | ||||
|           f.read | ||||
|         } | ||||
|         assert_equal(Encoding.find("euc-jp"), s.encoding) | ||||
|         assert_str_equal(("0" + src).encode("euc-jp"), s) | ||||
|       end | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 mame
						mame