Issue #13675 has been updated by matz (Yukihiro Matsumoto).


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.


----------------------------------------
Bug #13675: Should Zlib::GzipReader#ungetc accept nil?
https://bugs.ruby-lang.org/issues/13675#change-68034

* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
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



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>