/*
* call-seq:
* ungets(str)
*
* Equivalently "unget" a string. When called on a string that was just read
* from the stream, this inserts the string back into the stream to br read
* again.
*
* When called with a string which hasn't been read from the stream, it does
* the same thing, and the next read line/data will start from the beginning
* of the given data and the continue on with the rest of the stream.
*
* reader = Bzip2::Reader.new Bzip2.compress("a\nb")
* reader.gets # => "a\n"
* reader.ungets "a\n" # => nil
* reader.gets # => "a\n"
* reader.ungets "foo" # => nil
* reader.gets # => "foob"
*
* @param [String] str the string to insert back into the stream
* @return [nil] always
*/
static VALUE bz_reader_ungets(VALUE obj, VALUE a) {