Sha256: 1aac0ade112b568b0ce651d61b9505fed53b6178906da7688134dd7c1ee310f4
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
#include "rb_oniguruma_match.h" static VALUE og_oniguruma_oregexp_match_alloc() { NEWOBJ(match, struct RMatch); OBJSETUP(match, rb_cMatch, T_MATCH); match->str = 0; match->regs = 0; match->regs = ALLOC(struct re_registers); MEMZERO(match->regs, struct re_registers, 1); return (VALUE)match; } VALUE og_oniguruma_match_initialize(OnigRegion *region, VALUE string) { int i; VALUE match = og_oniguruma_oregexp_match_alloc(); RMATCH(match)->str = rb_str_new4(string); RMATCH(match)->regs->num_regs = region->num_regs; RMATCH(match)->regs->allocated = region->num_regs; RMATCH(match)->regs->beg = ALLOC_N(int, region->num_regs); RMATCH(match)->regs->end = ALLOC_N(int, region->num_regs); for (i = 0; i < region->num_regs; i++) { RMATCH(match)->regs->beg[i] = region->beg[i]; RMATCH(match)->regs->end[i] = region->end[i]; } return match; } int og_oniguruma_name_callback(OG_CALLBACK_UCHAR *name, OG_CALLBACK_UCHAR *name_end, int ngroup_num, int *group_nums, regex_t *reg, void *magic) { int i; VALUE hash; og_CallbackPacket * arg = (og_CallbackPacket*)magic; hash = arg->hash; for (i = 0; i < ngroup_num; i++) rb_hash_aset(hash, ID2SYM(rb_intern((char*)name)), INT2FIX(group_nums[i])); return 0; }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
geoffgarside-oniguruma-2.0.2 | ext/rb_oniguruma_match.c |
geoffgarside-oniguruma-2.0.3 | ext/rb_oniguruma_match.c |