Bug #13675
closedShould Zlib::GzipReader#ungetc accept nil?
Description
IO#ungetc accepts nil and just does nothing:
p File.new(__FILE__).ungetc(nil)
But on a GzipReader it fails:
require 'zlib'
zip = "\x1F\x8B\b\x00,\xDC\xD1G\x00\x0334261MLJNI\x05\x00\x9D\x05\x00$\n\x00\x00\x00"
io = StringIO.new zip
gz = Zlib::GzipReader.new(io)
p gz.ungetc(nil)
# =>
repro.rb:8:in `ungetc': no implicit conversion of nil into String (TypeError)
from repro.rb:8:in `<main>'
Should Zlib::GzipReader#ungetc accept nil?
Or should IO#ungetc also raise when given nil?
Discovered in https://github.com/jruby/jruby/pull/4636#issuecomment-305325839
Files
Updated by shevegen (Robert A. Heiler) over 7 years ago
I like symmetry. :)
Updated by matz (Yukihiro Matsumoto) about 7 years ago
Making Zlib::GzipReader#ungetc
accept nil does not help anybody. You should keep as it is.
I am not sure if we should fix IO#ungetc
or not (yet). Let me consider.
Matz.
Updated by Eregon (Benoit Daloze) about 7 years ago
matz (Yukihiro Matsumoto) wrote:
Making
Zlib::GzipReader#ungetc
accept nil does not help anybody. You should keep as it is.
Agreed.
I am not sure if we should fix
IO#ungetc
or not (yet). Let me consider.
I think we should, it seems a bug to me.
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
If we want to fix IO#ungetc
, attached is a patch that will fix it.
Updated by matz (Yukihiro Matsumoto) almost 5 years ago
IO#ungetc
should be fixed. The patch looks good to me.
Matz.
Updated by jeremyevans (Jeremy Evans) almost 5 years ago
- Status changed from Open to Closed
Applied in changeset git|54499d78109037d7c37bc09a8c3ffa0050da5aca.
Remove support for passing nil to IO#ungetc
Fixes [Bug #13675]