/*
* call-seq: << string
*
* Inputs +string+ into the inflate stream just like Zlib::Inflate#inflate, but
* returns the Zlib::Inflate object itself. The output from the stream is
* preserved in output buffer.
*/
static VALUE
rb_inflate_addstr(obj, src)
VALUE obj, src;
{
struct zstream *z = get_zstream(obj);
OBJ_INFECT(obj, src);
if (ZSTREAM_IS_FINISHED(z)) {
if (!NIL_P(src)) {
StringValue(src);
zstream_append_buffer2(z, src);
}
}
else {
do_inflate(z, src);
if (ZSTREAM_IS_FINISHED(z)) {
zstream_passthrough_input(z);
}
}
return obj;
}