/*
* call-seq:
* native_write(chunk, last_chunk)
*
* Write +chunk+ to PushParser. +last_chunk+ triggers the end_document handle
*/
static VALUE native_write(VALUE self, VALUE _chunk, VALUE _last_chunk)
{
xmlParserCtxtPtr ctx;
Data_Get_Struct(self, xmlParserCtxt, ctx);
const char * chunk = NULL;
int last_chunk = 0;
int size = 0;
if(Qnil != _chunk) {
chunk = StringValuePtr(_chunk);
size = RSTRING_LEN(_chunk);
}
if(Qtrue == _last_chunk) last_chunk = 1;
if(xmlParseChunk(ctx, chunk, size, last_chunk))
rb_raise(rb_eRuntimeError, "Couldn't parse chunk");
return self;
}