static int setup_onig (void) { static int inited = 0; if (inited) return 0; if ((-1 == slOnig_Error) && (-1 == (slOnig_Error = SLerr_new_exception (SL_RunTime_Error, "OnigError", "Onig Error")))) return -1; if (-1 == onig_init ()) { SLang_verror (slOnig_Error, "onig_init failed"); return -1; } onig_set_warn_func (&warn_func); onig_set_verb_warn_func (&verb_warn_func); onig_set_default_syntax (ONIG_SYNTAX_PERL); inited = 1; return 0; }
static void grn_init_external_libraries(void) { #ifdef GRN_SUPPORT_REGEXP onig_init(); #endif /* GRN_SUPPORT_REGEXP */ }
void Regexp::init(STATE) { onig_init(); GO(regexp).set(state->new_class("Regexp", G(object), 0)); G(regexp)->set_object_type(state, RegexpType); GO(matchdata).set(state->new_class("MatchData", G(object), 0)); G(matchdata)->set_object_type(state, MatchDataType); }
__attribute__((constructor)) static void setup () { onig_init(); static OnigSyntaxType syntax; onig_copy_syntax(&syntax, ONIG_SYNTAX_RUBY); onig_set_syntax_options(&syntax, ONIG_OPTION_OFF(syntax.options, ONIG_OPTION_ASCII_RANGE)); onig_set_default_syntax(&syntax); }
/* Open the library */ REX_API int REX_OPENLIB (lua_State *L) { if (ONIGURUMA_VERSION_MAJOR > atoi (onig_version ())) { return luaL_error (L, "%s requires at least version %d of Oniguruma library", REX_LIBNAME, (int)ONIGURUMA_VERSION_MAJOR); } onig_init(); onig_set_default_syntax(ONIG_SYNTAX_RUBY); alg_register(L, r_methods, r_functions, "Oniguruma"); return 1; }
void Encoding::init(STATE) { onig_init(); // in regexp.cpp too, but idempotent. Class* enc = ontology::new_class_under(state, "EncodingClass", G(rubinius)); GO(encoding).set(ontology::new_class_under(state, "Encoding", enc)); G(encoding)->set_object_type(state, EncodingType); enc->set_const(state, "EncodingMap", LookupTable::create(state)); enc->set_const(state, "EncodingList", Array::create(state, 3)); G(encoding)->set_ivar(state, state->symbol("@default_external"), G(undefined)); G(encoding)->set_ivar(state, state->symbol("@default_internal"), G(undefined)); Encoding* ascii = create_bootstrap(state, "US-ASCII", eAscii, ONIG_ENCODING_US_ASCII); Encoding* binary = create_bootstrap(state, "ASCII-8BIT", eBinary, ONIG_ENCODING_ASCII); Encoding* utf8 = create_bootstrap(state, "UTF-8", eUtf8, ONIG_ENCODING_UTF_8); ascii->name(state, String::create(state, "US-ASCII")); binary->name(state, String::create(state, "ASCII-8BIT")); utf8->name(state, String::create(state, "UTF-8")); #include "vm/gen/encoding_database.cpp" int index = -1; char* locale_charmap; #ifdef HAVE_NL_LANGINFO setlocale(LC_CTYPE, ""); locale_charmap = nl_langinfo(CODESET); #else locale_charmap = "US-ASCII"; #endif enc->set_const(state, "LocaleCharmap", String::create(state, locale_charmap)); index = find_index(state, locale_charmap); if(index < 0) index = find_index(state, "US-ASCII"); create_internal(state, "locale", index); create_internal(state, "external", index); create_internal(state, "filesystem", index); create_internal(state, "internal", -1); Transcoding::init(state); Converter::init(state); }
void Encoding::init(STATE) { onig_init(); // in regexp.cpp too, but idempotent. Class* enc = ontology::new_class_under(state, "Encoding", G(rubinius)); enc->name(state, state->symbol("Rubinius::Encoding")); GO(encoding).set(ontology::new_class_under(state, "Encoding", enc)); G(encoding)->set_object_type(state, EncodingType); G(encoding)->name(state, state->symbol("Encoding")); enc->set_const(state, "SymbolMap", LookupTable::create(state)); enc->set_const(state, "IndexMap", LookupTable::create(state)); Encoding* ascii = create_bootstrap(state, "US-ASCII", eAscii, ONIG_ENCODING_ASCII); Encoding* utf8 = create_bootstrap(state, "UTF-8", eUtf8, ONIG_ENCODING_UTF_8); ascii->name(state, String::create(state, "US-ASCII")); utf8->name(state, String::create(state, "UTF-8")); #include "vm/gen/encoding_database.cpp" }
/* Open the library */ REX_API int REX_OPENLIB (lua_State *L) { if (ONIGURUMA_VERSION_MAJOR > atoi (onig_version ())) { return luaL_error (L, "%s requires at least version %d of Oniguruma library", REX_LIBNAME, (int)ONIGURUMA_VERSION_MAJOR); } onig_init(); onig_set_default_syntax(ONIG_SYNTAX_RUBY); /* create a new function environment to serve as a metatable for methods */ lua_newtable (L); lua_pushvalue (L, -1); lua_replace (L, LUA_ENVIRONINDEX); lua_pushvalue(L, -1); /* mt.__index = mt */ lua_setfield(L, -2, "__index"); luaL_register (L, NULL, regex_meta); /* register functions */ luaL_register (L, REX_LIBNAME, rexlib); lua_pushliteral (L, REX_VERSION" (for Oniguruma)"); lua_setfield (L, -2, "_VERSION"); return 1; }