Sha256: 8d391c97b599543bbd86d46daa0ca0a62294994dbfaa3effcebe50d247103544

Contents?: true

Size: 1.08 KB

Versions: 255

Compression:

Stored size: 1.08 KB

Contents

#include <nokogiri.h>

static VALUE foreign_error_handler_block = Qnil;

static void
foreign_error_handler(void *user_data, xmlErrorPtr c_error)
{
  rb_funcall(foreign_error_handler_block, rb_intern("call"), 0);
}

/*
 * call-seq:
 *   __foreign_error_handler { ... } -> nil
 *
 * Override libxml2's global error handlers to call the block. This method thus has very little
 * value except to test that Nokogiri is properly setting error handlers elsewhere in the code. See
 * test/helper.rb for how this is being used.
 */
static VALUE
rb_foreign_error_handler(VALUE klass)
{
  rb_need_block();
  foreign_error_handler_block = rb_block_proc();
  xmlSetStructuredErrorFunc(NULL, foreign_error_handler);
  return Qnil;
}

/*
 *  Document-module: Nokogiri::Test
 *
 *  The Nokogiri::Test module should only be used for testing Nokogiri.
 *  Do NOT use this outside of the Nokogiri test suite.
 */
void
noko_init_test_global_handlers()
{
  VALUE mNokogiriTest = rb_define_module_under(mNokogiri, "Test");

  rb_define_singleton_method(mNokogiriTest, "__foreign_error_handler", rb_foreign_error_handler, 0);
}

Version data entries

255 entries across 249 versions & 6 rubygems

Version Path
nokogiri-1.11.3-x86_64-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.11.3-x86_64-darwin ext/nokogiri/test_global_handlers.c
nokogiri-1.11.3-x86-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.11.3-x86-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.11.3-x64-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.11.3-java ext/nokogiri/test_global_handlers.c
nokogiri-1.11.3-arm64-darwin ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2 ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-x86-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-x64-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-x86_64-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-x86_64-darwin ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-x86-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-java ext/nokogiri/test_global_handlers.c
nokogiri-1.11.2-arm64-darwin ext/nokogiri/test_global_handlers.c