# \[Bug:trunk\] rubyspec: StringIO#ungetc when passed \[char\] tries to convert the passed length to an I

**URL:** <https://www.ruby-forum.com/t/bug-trunk-rubyspec-stringio-ungetc-when-passed-char-tries-to-convert-the-passed-length-to-an-i/182625>\
**Category:** Development\
**Created:** [January 31, 2010, 11:34am UTC](https://www.ruby-forum.com/t/bug-trunk-rubyspec-stringio-ungetc-when-passed-char-tries-to-convert-the-passed-length-to-an-i/182625 "2010-01-31T11:34:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [January 31, 2010, 11:34am UTC](https://www.ruby-forum.com/t/bug-trunk-rubyspec-stringio-ungetc-when-passed-char-tries-to-convert-the-passed-length-to-an-i/182625/1 "2010-01-31T11:34:16Z")

</div>

stringio e$B$N%a%s%F%J$N$J$+$@$5$s!"$b$7$/$O@.@%$5$se(B  
e$B1sF#$G$9!#e(B

to\_int e$B$r\<BAu$7$?%\*%V%8%’%/%H$re(B StringIO#ungetc  
e$B$KM?$($?;~$N5sF0$,e(B  
1.8 e$B$He(B 1.9 e$B$G0c$$$^$9!#e(B

# 1.8 e$B$G$OIaDL$K\<u$1F~$l$ke(B

$ ruby18 -rstringio -e ’  
o = Object.new  
def o.to\_int; ?A.ord; end  
StringIO.new.ungetc(o)  
’

# 1.9 e$B$G$ONc30e(B

$ ruby19 -rstringio -e ’  
o = Object.new  
def o.to\_int; ?A.ord; end  
StringIO.new.ungetc(o)  
’  
-e:4:in `ungetc': can't convert Object into String (TypeError) from -e:4:in`’

M17N e$BBP1~$N1F6A$@$H;W$$$^$9$,!"$3$l$Oe(B 1.9  
e$B$+$i$N;EMMJQ99$H$7$^$9$+!)e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [January 31, 2010, 6:20pm UTC](https://www.ruby-forum.com/t/bug-trunk-rubyspec-stringio-ungetc-when-passed-char-tries-to-convert-the-passed-length-to-an-i/182625/2 "2010-01-31T18:20:58Z")

</div>

e$B%A%1%C%He(B #2697 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B%+%F%4%je(B exte$B$K%;%C%He(B  
e$B%9%F!\<%?%9e(B Opene$B$+$ie(BRejectede$B$KJQ99e(B  
ruby -v ruby 1.9.2dev (2010-01-28 trunk 26458) [x86\_64-freebsd8.0]  
e$B$K%;%C%He(B

## IO#ungetc e$B$bF1MM$N5sF0$J$N$G!";EMMJQ99$G$7$g$&!#e(B

[http://redmine.ruby-lang.org/issues/show/2697](http://redmine.ruby-lang.org/issues/show/2697)
