/* * Sets the preset dictionary and returns +string+. This method is available just * only after a Zlib::NeedDict exception was raised. See zlib.h for details. * * TODO: document better! */ static VALUE rb_inflate_set_dictionary(obj, dic) VALUE obj, dic; { struct zstream *z = get_zstream(obj); VALUE src = dic; int err; OBJ_INFECT(obj, dic); StringValue(src); err = inflateSetDictionary(&z->stream, RSTRING(src)->ptr, RSTRING(src)->len); if (err != Z_OK) { raise_zlib_error(err, z->stream.msg); } return dic; }