Sha256: 19d76023ddecf0571f134a01353898bd8809f7544e04f6444e8f32626b3e2ffd

Contents?: true

Size: 669 Bytes

Versions: 17

Compression:

Stored size: 669 Bytes

Contents

#include <xml_io.h>

static ID id_read, id_write;

int io_read_callback(void * ctx, char * buffer, int len) {
  VALUE io = (VALUE)ctx;
  VALUE string = rb_funcall(io, id_read, 1, INT2NUM(len));

  if(NIL_P(string)) return 0;

  memcpy(buffer, StringValuePtr(string), (unsigned int)RSTRING_LEN(string));

  return (int)RSTRING_LEN(string);
}

int io_write_callback(void * ctx, char * buffer, int len) {
  VALUE io = (VALUE)ctx;
  VALUE string = rb_str_new(buffer, len);

  rb_funcall(io, id_write, 1, string);
  return len;
}

int io_close_callback(void * ctx) {
  return 0;
}

void init_nokogiri_io() {
  id_read = rb_intern("read");
  id_write = rb_intern("write");
}

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
nokogiri-1.5.0.beta.2 ext/nokogiri/xml_io.c
nokogiri-1.5.0.beta.2-java ext/nokogiri/xml_io.c
nokogiri-1.4.3.1-java ext/nokogiri/xml_io.c
nokogiri-1.4.3.1-x86-mswin32 ext/nokogiri/xml_io.c
nokogiri-1.4.3.1-x86-mingw32 ext/nokogiri/xml_io.c
nokogiri-1.4.3.1 ext/nokogiri/xml_io.c
nokogiri-1.4.3-java ext/nokogiri/xml_io.c
nokogiri-1.4.3-x86-mswin32 ext/nokogiri/xml_io.c
nokogiri-1.4.3-x86-mingw32 ext/nokogiri/xml_io.c
nokogiri-1.4.3 ext/nokogiri/xml_io.c
glebm-nokogiri-1.4.2.1 ext/nokogiri/xml_io.c
nokogiri-1.5.0.beta.1 ext/nokogiri/xml_io.c
nokogiri-1.4.2.1-x86-mswin32 ext/nokogiri/xml_io.c
nokogiri-1.4.2.1-x86-mingw32 ext/nokogiri/xml_io.c
nokogiri-1.5.0.beta.1-java ext/nokogiri/xml_io.c
nokogiri-1.4.2-java ext/nokogiri/xml_io.c
nokogiri-1.4.2 ext/nokogiri/xml_io.c