re.c File Reference

#include "ruby/ruby.h"
#include "ruby/re.h"
#include "ruby/encoding.h"
#include "ruby/util.h"
#include "regint.h"
#include <ctype.h>

Include dependency graph for re.c:

Go to the source code of this file.

Data Structures

struct  pair_t
struct  backref_name_tag

Defines

#define errcpy(err, msg)   strlcpy((err), (msg), ONIG_MAX_ERROR_MESSAGE_LEN)
#define BEG(no)   regs->beg[no]
#define END(no)   regs->end[no]
#define REG_LITERAL   FL_USER5
#define REG_ENCODING_NONE   FL_USER6
#define KCODE_FIXED   FL_USER4
#define ARG_REG_OPTION_MASK   (ONIG_OPTION_IGNORECASE|ONIG_OPTION_MULTILINE|ONIG_OPTION_EXTEND)
#define ARG_ENCODING_FIXED   16
#define ARG_ENCODING_NONE   32
#define MATCH_BUSY   FL_USER2
#define ASCGET(s, e, cl)   (acompat ? (*cl=1,ISASCII(s[0])?s[0]:-1) : rb_enc_ascget(s, e, cl, str_enc))

Typedefs

typedef char onig_errmsg_buffer [ONIG_MAX_ERROR_MESSAGE_LEN]

Functions

int rb_memcicmp (const void *x, const void *y, long len)
int rb_memcmp (const void *p1, const void *p2, long len)
static long rb_memsearch_ss (const unsigned char *xs, long m, const unsigned char *ys, long n)
static long rb_memsearch_qs (const unsigned char *xs, long m, const unsigned char *ys, long n)
static unsigned int rb_memsearch_qs_utf8_hash (const unsigned char *x)
static long rb_memsearch_qs_utf8 (const unsigned char *xs, long m, const unsigned char *ys, long n)
long rb_memsearch (const void *x0, long m, const void *y0, long n, rb_encoding *enc)
static int char_to_option (int c)
static char * option_to_str (char str[4], int options)
int rb_char_to_option_kcode (int c, int *option, int *kcode)
static void rb_reg_check (VALUE re)
int rb_str_buf_cat_escaped_char (VALUE result, unsigned int c, int unicode_p)
static void rb_reg_expr_str (VALUE str, const char *s, long len, rb_encoding *enc, rb_encoding *resenc)
static VALUE rb_reg_desc (const char *s, long len, VALUE re)
static VALUE rb_reg_source (VALUE re)
static VALUE rb_reg_inspect (VALUE re)
static VALUE rb_reg_to_s (VALUE re)
static void rb_reg_raise (const char *s, long len, const char *err, VALUE re)
static VALUE rb_enc_reg_error_desc (const char *s, long len, rb_encoding *enc, int options, const char *err)
static void rb_enc_reg_raise (const char *s, long len, rb_encoding *enc, int options, const char *err)
static VALUE rb_reg_error_desc (VALUE str, int options, const char *err)
static void rb_reg_raise_str (VALUE str, int options, const char *err)
static VALUE rb_reg_casefold_p (VALUE re)
static VALUE rb_reg_options_m (VALUE re)
static int reg_names_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg)
static VALUE rb_reg_names (VALUE re)
static int reg_named_captures_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg)
static VALUE rb_reg_named_captures (VALUE re)
static int onig_new_with_source (regex_t **reg, const UChar *pattern, const UChar *pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType *syntax, OnigErrorInfo *einfo, const char *sourcefile, int sourceline)
static Regexpmake_regexp (const char *s, long len, rb_encoding *enc, int flags, onig_errmsg_buffer err, const char *sourcefile, int sourceline)
static VALUE match_alloc (VALUE klass)
static int pair_byte_cmp (const void *pair1, const void *pair2)
static void update_char_offset (VALUE match)
static void match_check (VALUE match)
static VALUE match_init_copy (VALUE obj, VALUE orig)
static VALUE match_regexp (VALUE match)
static VALUE match_names (VALUE match)
static VALUE match_size (VALUE match)
static int match_backref_number (VALUE match, VALUE backref)
int rb_reg_backref_number (VALUE match, VALUE backref)
static VALUE match_offset (VALUE match, VALUE n)
static VALUE match_begin (VALUE match, VALUE n)
static VALUE match_end (VALUE match, VALUE n)
void rb_match_busy (VALUE match)
static VALUE rb_reg_fixed_encoding_p (VALUE re)
static VALUE rb_reg_preprocess (const char *p, const char *end, rb_encoding *enc, rb_encoding **fixed_enc, onig_errmsg_buffer err)
static void reg_enc_error (VALUE re, VALUE str)
static rb_encodingrb_reg_prepare_enc (VALUE re, VALUE str, int warn)
regex_trb_reg_prepare_re (VALUE re, VALUE str)
long rb_reg_adjust_startpos (VALUE re, VALUE str, long pos, int reverse)
long rb_reg_search (VALUE re, VALUE str, long pos, int reverse)
VALUE rb_reg_nth_defined (int nth, VALUE match)
VALUE rb_reg_nth_match (int nth, VALUE match)
VALUE rb_reg_last_match (VALUE match)
VALUE rb_reg_match_pre (VALUE match)
VALUE rb_reg_match_post (VALUE match)
VALUE rb_reg_match_last (VALUE match)
static VALUE last_match_getter (void)
static VALUE prematch_getter (void)
static VALUE postmatch_getter (void)
static VALUE last_paren_match_getter (void)
static VALUE match_array (VALUE match, int start)
static VALUE match_to_a (VALUE match)
static VALUE match_captures (VALUE match)
static int name_to_backref_number (struct re_registers *regs, VALUE regexp, const char *name, const char *name_end)
static VALUE match_aref (int argc, VALUE *argv, VALUE match)
static VALUE match_entry (VALUE match, long n)
static VALUE match_values_at (int argc, VALUE *argv, VALUE match)
static VALUE match_to_s (VALUE match)
static VALUE match_string (VALUE match)
static int match_inspect_name_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
static VALUE match_inspect (VALUE match)
static int read_escaped_byte (const char **pp, const char *end, onig_errmsg_buffer err)
static int unescape_escaped_nonascii (const char **pp, const char *end, rb_encoding *enc, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
static int check_unicode_range (unsigned long code, onig_errmsg_buffer err)
static int append_utf8 (unsigned long uv, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
static int unescape_unicode_list (const char **pp, const char *end, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
static int unescape_unicode_bmp (const char **pp, const char *end, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
static int unescape_nonascii (const char *p, const char *end, rb_encoding *enc, VALUE buf, rb_encoding **encp, int *has_property, onig_errmsg_buffer err)
VALUE rb_reg_check_preprocess (VALUE str)
static VALUE rb_reg_preprocess_dregexp (VALUE ary, int options)
static int rb_reg_initialize (VALUE obj, const char *s, long len, rb_encoding *enc, int options, onig_errmsg_buffer err, const char *sourcefile, int sourceline)
static int rb_reg_initialize_str (VALUE obj, VALUE str, int options, onig_errmsg_buffer err, const char *sourcefile, int sourceline)
static VALUE rb_reg_s_alloc (VALUE klass)
VALUE rb_reg_alloc (void)
VALUE rb_reg_new_str (VALUE s, int options)
VALUE rb_reg_init_str (VALUE re, VALUE s, int options)
VALUE rb_reg_new_ary (VALUE ary, int opt)
VALUE rb_enc_reg_new (const char *s, long len, rb_encoding *enc, int options)
VALUE rb_reg_new (const char *s, long len, int options)
VALUE rb_reg_compile (VALUE str, int options, const char *sourcefile, int sourceline)
VALUE rb_reg_regcomp (VALUE str)
static st_index_t reg_hash (VALUE re)
static VALUE rb_reg_hash (VALUE re)
static VALUE rb_reg_equal (VALUE re1, VALUE re2)
static VALUE match_hash (VALUE match)
static VALUE match_equal (VALUE match1, VALUE match2)
static VALUE reg_operand (VALUE s, int check)
static long reg_match_pos (VALUE re, VALUE *strp, long pos)
VALUE rb_reg_match (VALUE re, VALUE str)
VALUE rb_reg_eqq (VALUE re, VALUE str)
VALUE rb_reg_match2 (VALUE re)
static VALUE rb_reg_match_m (int argc, VALUE *argv, VALUE re)
static VALUE rb_reg_initialize_m (int argc, VALUE *argv, VALUE self)
VALUE rb_reg_quote (VALUE str)
static VALUE rb_reg_s_quote (VALUE c, VALUE str)
int rb_reg_options (VALUE re)
VALUE rb_check_regexp_type (VALUE re)
static VALUE rb_reg_s_try_convert (VALUE dummy, VALUE re)
static VALUE rb_reg_s_union (VALUE self, VALUE args0)
static VALUE rb_reg_s_union_m (VALUE self, VALUE args)
static VALUE rb_reg_init_copy (VALUE copy, VALUE re)
VALUE rb_reg_regsub (VALUE str, VALUE src, struct re_registers *regs, VALUE regexp)
static VALUE kcode_getter (void)
static void kcode_setter (VALUE val, ID id)
static VALUE ignorecase_getter (void)
static void ignorecase_setter (VALUE val, ID id)
static VALUE match_getter (void)
static void match_setter (VALUE val)
static VALUE rb_reg_s_last_match (int argc, VALUE *argv)
static void re_warn (const char *s)
void Init_Regexp (void)

Variables

VALUE rb_eRegexpError
VALUE rb_cMatch
VALUE rb_cRegexp
static VALUE reg_cache


Define Documentation

#define ARG_ENCODING_FIXED   16

Definition at line 247 of file re.c.

Referenced by Init_Regexp(), rb_char_to_option_kcode(), rb_reg_initialize(), and rb_reg_options().

#define ARG_ENCODING_NONE   32

Definition at line 248 of file re.c.

Referenced by rb_char_to_option_kcode(), rb_reg_initialize(), rb_reg_initialize_m(), rb_reg_initialize_str(), rb_reg_options(), and rb_reg_preprocess_dregexp().

#define ARG_REG_OPTION_MASK   (ONIG_OPTION_IGNORECASE|ONIG_OPTION_MULTILINE|ONIG_OPTION_EXTEND)

Definition at line 245 of file re.c.

Referenced by rb_reg_initialize(), and rb_reg_options().

#define ASCGET ( s,
e,
cl   )     (acompat ? (*cl=1,ISASCII(s[0])?s[0]:-1) : rb_enc_ascget(s, e, cl, str_enc))

Referenced by rb_reg_regsub().

#define BEG ( no   )     regs->beg[no]

Definition at line 24 of file re.c.

Referenced by match_begin(), match_end(), match_offset(), rb_reg_match_last(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_nth_defined(), rb_reg_nth_match(), rb_reg_regsub(), rb_str_split_m(), rb_str_sub_bang(), rb_str_subpat_set(), scan_once(), str_gsub(), and update_char_offset().

#define END ( no   )     regs->end[no]

Definition at line 25 of file re.c.

#define errcpy ( err,
msg   )     strlcpy((err), (msg), ONIG_MAX_ERROR_MESSAGE_LEN)

Definition at line 22 of file re.c.

Referenced by append_utf8(), check_unicode_range(), rb_reg_initialize(), rb_reg_initialize_str(), read_escaped_byte(), unescape_escaped_nonascii(), unescape_nonascii(), unescape_unicode_bmp(), and unescape_unicode_list().

#define KCODE_FIXED   FL_USER4

Definition at line 243 of file re.c.

Referenced by rb_reg_equal(), rb_reg_fixed_encoding_p(), rb_reg_initialize(), and rb_reg_options().

#define MATCH_BUSY   FL_USER2

Definition at line 1173 of file re.c.

Referenced by rb_match_busy(), and rb_reg_search().

#define REG_ENCODING_NONE   FL_USER6

Definition at line 241 of file re.c.

Referenced by rb_reg_desc(), rb_reg_initialize(), rb_reg_options(), and rb_reg_prepare_enc().

#define REG_LITERAL   FL_USER5

Definition at line 240 of file re.c.

Referenced by rb_reg_compile(), and rb_reg_initialize().


Typedef Documentation

typedef char onig_errmsg_buffer[ONIG_MAX_ERROR_MESSAGE_LEN]

Definition at line 21 of file re.c.


Function Documentation

static int append_utf8 ( unsigned long  uv,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
) [static]

Definition at line 2067 of file re.c.

References check_unicode_range(), errcpy, len, rb_str_buf_cat(), rb_utf8_encoding(), rb_uv_to_utf8(), and snprintf.

Referenced by unescape_unicode_bmp(), and unescape_unicode_list().

static int char_to_option ( int  c  )  [static]

Definition at line 251 of file re.c.

References ONIG_OPTION_EXTEND, ONIG_OPTION_IGNORECASE, and ONIG_OPTION_MULTILINE.

Referenced by rb_char_to_option_kcode(), and rb_reg_to_s().

static int check_unicode_range ( unsigned long  code,
onig_errmsg_buffer  err 
) [static]

Definition at line 2056 of file re.c.

References errcpy.

Referenced by append_utf8().

static VALUE ignorecase_getter ( void   )  [static]

Definition at line 3412 of file re.c.

References Qfalse, and rb_warn().

Referenced by Init_Regexp().

static void ignorecase_setter ( VALUE  val,
ID  id 
) [static]

Definition at line 3419 of file re.c.

References rb_warn().

Referenced by Init_Regexp().

void Init_Regexp ( void   ) 

Definition at line 3514 of file re.c.

References ARG_ENCODING_FIXED, CLASS_OF, ignorecase_getter(), ignorecase_setter(), INT2FIX, kcode_getter(), kcode_setter(), last_match_getter(), last_paren_match_getter(), match_alloc(), match_aref(), match_begin(), match_captures(), match_end(), match_equal(), match_getter(), match_hash(), match_init_copy(), match_inspect(), match_names(), match_offset(), match_regexp(), match_setter(), match_size(), match_string(), match_to_a(), match_to_s(), match_values_at(), ONIG_ENCODING_ASCII, ONIG_OPTION_EXTEND, ONIG_OPTION_IGNORECASE, ONIG_OPTION_MULTILINE, onig_set_verb_warn_func(), onig_set_warn_func(), onigenc_set_default_caseconv_table(), onigenc_set_default_encoding(), postmatch_getter(), prematch_getter(), rb_class_new_instance(), rb_cMatch, rb_cObject, rb_cRegexp, rb_define_alloc_func(), rb_define_class(), rb_define_const(), rb_define_method(), rb_define_singleton_method(), rb_define_virtual_variable(), rb_eRegexpError, rb_eStandardError, rb_global_variable(), rb_obj_encoding(), rb_reg_casefold_p(), rb_reg_eqq(), rb_reg_equal(), rb_reg_fixed_encoding_p(), rb_reg_hash(), rb_reg_init_copy(), rb_reg_initialize_m(), rb_reg_inspect(), rb_reg_match(), rb_reg_match2(), rb_reg_match_m(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_named_captures(), rb_reg_names(), rb_reg_options_m(), rb_reg_s_alloc(), rb_reg_s_last_match(), rb_reg_s_quote(), rb_reg_s_try_convert(), rb_reg_s_union_m(), rb_reg_source(), rb_reg_to_s(), rb_undef_method(), re_warn(), reg_cache, and UChar.

static VALUE kcode_getter ( void   )  [static]

Definition at line 3399 of file re.c.

References Qnil, and rb_warn().

Referenced by Init_Regexp().

static void kcode_setter ( VALUE  val,
ID  id 
) [static]

Definition at line 3406 of file re.c.

References rb_warn().

Referenced by Init_Regexp().

static VALUE last_match_getter ( void   )  [static]

Definition at line 1550 of file re.c.

References rb_backref_get(), and rb_reg_last_match().

Referenced by Init_Regexp().

static VALUE last_paren_match_getter ( void   )  [static]

Definition at line 1568 of file re.c.

References rb_backref_get(), and rb_reg_match_last().

Referenced by Init_Regexp().

static Regexp* make_regexp ( const char *  s,
long  len,
rb_encoding enc,
int  flags,
onig_errmsg_buffer  err,
const char *  sourcefile,
int  sourceline 
) [static]

Definition at line 786 of file re.c.

References onig_error_code_to_str(), onig_new_with_source(), OnigDefaultSyntax, and UChar.

Referenced by rb_reg_initialize().

static VALUE match_alloc ( VALUE  klass  )  [static]

Definition at line 825 of file re.c.

References ALLOC, MEMZERO, NEWOBJ, OBJSETUP, and T_MATCH.

Referenced by Init_Regexp(), and rb_reg_search().

static VALUE match_aref ( int  argc,
VALUE argv,
VALUE  match 
) [static]

Definition at line 1696 of file re.c.

References FIX2INT, FIXNUM_P, match_check(), match_to_a(), name_to_backref_number(), NIL_P, rb_ary_aref(), rb_id2name(), rb_reg_nth_match(), rb_scan_args(), RMATCH, RMATCH_REGS, StringValuePtr, SYM2ID, T_STRING, T_SYMBOL, and TYPE.

Referenced by Init_Regexp().

static VALUE match_array ( VALUE  match,
int  start 
) [static]

Definition at line 1574 of file re.c.

References re_registers::beg, re_registers::end, match_check(), re_registers::num_regs, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_ary_new2(), rb_ary_push(), rb_str_subseq(), RMATCH, and RMATCH_REGS.

Referenced by match_captures(), and match_to_a().

static int match_backref_number ( VALUE  match,
VALUE  backref 
) [static]

Definition at line 1027 of file re.c.

References match_check(), name, NUM2INT, onig_name_to_backref_number(), rb_eIndexError, rb_id2name(), rb_raise(), RMATCH, RMATCH_REGS, RREGEXP, StringValueCStr, SYM2ID, T_STRING, T_SYMBOL, and TYPE.

Referenced by match_begin(), match_end(), match_offset(), rb_reg_backref_number(), and rb_reg_s_last_match().

static VALUE match_begin ( VALUE  match,
VALUE  n 
) [static]

Definition at line 1122 of file re.c.

References BEG, INT2FIX, match_backref_number(), match_check(), re_registers::num_regs, Qnil, rb_eIndexError, rb_raise(), RMATCH, RMATCH_REGS, and update_char_offset().

Referenced by Init_Regexp().

static VALUE match_captures ( VALUE  match  )  [static]

Definition at line 1647 of file re.c.

References match_array().

Referenced by Init_Regexp().

static void match_check ( VALUE  match  )  [static]

Definition at line 928 of file re.c.

References rb_eTypeError, rb_raise(), and RMATCH.

Referenced by match_aref(), match_array(), match_backref_number(), match_begin(), match_end(), match_names(), match_offset(), match_regexp(), match_size(), match_string(), match_to_s(), match_values_at(), rb_reg_match_last(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_nth_defined(), and rb_reg_nth_match().

static VALUE match_end ( VALUE  match,
VALUE  n 
) [static]

Definition at line 1157 of file re.c.

References BEG, INT2FIX, match_backref_number(), match_check(), re_registers::num_regs, Qnil, rb_eIndexError, rb_raise(), RMATCH, RMATCH_REGS, and update_char_offset().

Referenced by Init_Regexp().

static VALUE match_entry ( VALUE  match,
long  n 
) [static]

Definition at line 1737 of file re.c.

References rb_reg_nth_match().

Referenced by match_values_at().

static VALUE match_equal ( VALUE  match1,
VALUE  match2 
) [static]

Definition at line 2635 of file re.c.

References re_registers::beg, re_registers::end, memcmp(), re_registers::num_regs, Qfalse, Qtrue, rb_reg_equal(), rb_str_equal(), RMATCH, RMATCH_REGS, T_MATCH, and TYPE.

Referenced by Init_Regexp().

static VALUE match_getter ( void   )  [static]

Definition at line 3425 of file re.c.

References NIL_P, Qnil, rb_backref_get(), and rb_match_busy().

Referenced by Init_Regexp(), and rb_reg_s_last_match().

static VALUE match_hash ( VALUE  match  )  [static]

Definition at line 2612 of file re.c.

References re_registers::beg, re_registers::end, LONG2FIX, re_registers::num_regs, rb_hash_end, rb_hash_start(), rb_hash_uint, rb_memhash(), rb_str_hash(), reg_hash(), RMATCH, and RMATCH_REGS.

Referenced by Init_Regexp().

static VALUE match_init_copy ( VALUE  obj,
VALUE  orig 
) [static]

Definition at line 937 of file re.c.

References rmatch::char_offset, rmatch::char_offset_num_allocated, rmatch::char_offset_updated, MEMCPY, re_registers::num_regs, onig_region_copy(), rb_eTypeError, rb_obj_class(), rb_obj_is_instance_of(), rb_raise(), REALLOC_N, rmatch::regs, RMATCH, and RMATCH_REGS.

Referenced by Init_Regexp().

static VALUE match_inspect ( VALUE  match  )  [static]

Definition at line 1848 of file re.c.

References ALLOCA_N, len, match_inspect_name_iter(), MEMZERO, name, names, re_registers::num_regs, onig_foreach_name(), Qnil, rb_obj_classname(), rb_reg_nth_match(), rb_sprintf(), rb_str_buf_append(), rb_str_buf_cat(), rb_str_buf_cat2(), rb_str_buf_new2, rb_str_catf(), rb_str_inspect(), RMATCH, RMATCH_REGS, and RREGEXP.

Referenced by Init_Regexp().

static int match_inspect_name_iter ( const OnigUChar name,
const OnigUChar name_end,
int  back_num,
int *  back_refs,
OnigRegex  regex,
void *  arg0 
) [static]

Definition at line 1814 of file re.c.

References backref_name_tag::len.

Referenced by match_inspect().

static VALUE match_names ( VALUE  match  )  [static]

Definition at line 1001 of file re.c.

References match_check(), rb_reg_names(), and RMATCH.

Referenced by Init_Regexp().

static VALUE match_offset ( VALUE  match,
VALUE  n 
) [static]

Definition at line 1086 of file re.c.

References BEG, INT2FIX, match_backref_number(), match_check(), re_registers::num_regs, Qnil, rb_assoc_new(), rb_eIndexError, rb_raise(), RMATCH, RMATCH_REGS, and update_char_offset().

Referenced by Init_Regexp().

static VALUE match_regexp ( VALUE  match  )  [static]

Definition at line 980 of file re.c.

References match_check(), and RMATCH.

Referenced by Init_Regexp().

static void match_setter ( VALUE  val  )  [static]

Definition at line 3435 of file re.c.

References Check_Type, NIL_P, rb_backref_set(), and T_MATCH.

Referenced by Init_Regexp().

static VALUE match_size ( VALUE  match  )  [static]

Definition at line 1020 of file re.c.

References INT2FIX, match_check(), and RMATCH_REGS.

Referenced by Init_Regexp().

static VALUE match_string ( VALUE  match  )  [static]

Definition at line 1802 of file re.c.

References match_check(), and RMATCH.

Referenced by Init_Regexp().

static VALUE match_to_a ( VALUE  match  )  [static]

Definition at line 1628 of file re.c.

References match_array().

Referenced by Init_Regexp(), and match_aref().

static VALUE match_to_s ( VALUE  match  )  [static]

Definition at line 1779 of file re.c.

References match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, rb_reg_last_match(), rb_str_new(), and RMATCH.

Referenced by Init_Regexp().

static VALUE match_values_at ( int  argc,
VALUE argv,
VALUE  match 
) [static]

Definition at line 1758 of file re.c.

References match_check(), match_entry(), re_registers::num_regs, rb_get_values_at(), and RMATCH_REGS.

Referenced by Init_Regexp().

static int name_to_backref_number ( struct re_registers regs,
VALUE  regexp,
const char *  name,
const char *  name_end 
) [static]

Definition at line 1653 of file re.c.

References onig_name_to_backref_number(), rb_eIndexError, rb_raise(), rb_str_new(), RREGEXP, and StringValuePtr.

Referenced by match_aref(), and rb_reg_regsub().

static int onig_new_with_source ( regex_t **  reg,
const UChar *  pattern,
const UChar *  pattern_end,
OnigOptionType  option,
OnigEncoding  enc,
const OnigSyntaxType syntax,
OnigErrorInfo einfo,
const char *  sourcefile,
int  sourceline 
) [static]

Definition at line 764 of file re.c.

References err, IS_NULL, NULL, onig_compile(), onig_free(), onig_reg_init(), ONIGENC_CASE_FOLD_DEFAULT, ONIGERR_MEMORY, and xmalloc.

Referenced by make_regexp().

static char* option_to_str ( char  str[4],
int  options 
) [static]

Definition at line 273 of file re.c.

References ONIG_OPTION_EXTEND, ONIG_OPTION_IGNORECASE, and ONIG_OPTION_MULTILINE.

Referenced by rb_enc_reg_error_desc(), rb_reg_desc(), and rb_reg_to_s().

static int pair_byte_cmp ( const void *  pair1,
const void *  pair2 
) [static]

Definition at line 845 of file re.c.

References diff().

Referenced by update_char_offset().

static VALUE postmatch_getter ( void   )  [static]

Definition at line 1562 of file re.c.

References rb_backref_get(), and rb_reg_match_post().

Referenced by Init_Regexp().

static VALUE prematch_getter ( void   )  [static]

Definition at line 1556 of file re.c.

References rb_backref_get(), and rb_reg_match_pre().

Referenced by Init_Regexp().

int rb_char_to_option_kcode ( int  c,
int *  option,
int *  kcode 
)

Definition at line 284 of file re.c.

References ARG_ENCODING_FIXED, ARG_ENCODING_NONE, char_to_option(), rb_ascii8bit_encindex(), rb_enc_find_index(), and rb_utf8_encindex().

VALUE rb_check_regexp_type ( VALUE  re  ) 

Definition at line 3084 of file re.c.

References rb_check_convert_type(), and T_REGEXP.

Referenced by rb_reg_s_try_convert(), and rb_reg_s_union().

static VALUE rb_enc_reg_error_desc ( const char *  s,
long  len,
rb_encoding enc,
int  options,
const char *  err 
) [static]

Definition at line 596 of file re.c.

References NULL, option_to_str(), rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_associate(), rb_eRegexpError, rb_exc_new3(), rb_reg_expr_str(), rb_str_buf_cat2(), and rb_str_buf_new2.

Referenced by rb_enc_reg_raise(), and rb_reg_error_desc().

VALUE rb_enc_reg_new ( const char *  s,
long  len,
rb_encoding enc,
int  options 
)

Definition at line 2498 of file re.c.

References err, NULL, rb_enc_reg_raise(), rb_reg_alloc(), and rb_reg_initialize().

Referenced by rb_reg_new().

static void rb_enc_reg_raise ( const char *  s,
long  len,
rb_encoding enc,
int  options,
const char *  err 
) [static]

Definition at line 613 of file re.c.

References rb_enc_reg_error_desc(), and rb_exc_raise().

Referenced by rb_enc_reg_new().

void rb_match_busy ( VALUE  match  ) 

Definition at line 1176 of file re.c.

References FL_SET, and MATCH_BUSY.

int rb_memcicmp ( const void *  x,
const void *  y,
long  len 
)

Definition at line 79 of file re.c.

Referenced by parser_encode_length(), and rb_file_identical_p().

int rb_memcmp ( const void *  p1,
const void *  p2,
long  len 
)

Definition at line 94 of file re.c.

References memcmp().

long rb_memsearch ( const void *  x0,
long  m,
const void *  y0,
long  n,
rb_encoding enc 
)

Definition at line 210 of file re.c.

References memcmp(), rb_memsearch_qs(), rb_memsearch_qs_utf8(), rb_memsearch_ss(), rb_utf8_encoding(), and SIZEOF_VALUE.

Referenced by rb_str_index(), and rb_str_split_m().

static long rb_memsearch_qs ( const unsigned char *  xs,
long  m,
const unsigned char *  ys,
long  n 
) [inline, static]

Definition at line 136 of file re.c.

References memcmp().

Referenced by rb_memsearch().

static long rb_memsearch_qs_utf8 ( const unsigned char *  xs,
long  m,
const unsigned char *  ys,
long  n 
) [inline, static]

Definition at line 188 of file re.c.

References memcmp(), and rb_memsearch_qs_utf8_hash().

Referenced by rb_memsearch().

static unsigned int rb_memsearch_qs_utf8_hash ( const unsigned char *  x  )  [inline, static]

Definition at line 156 of file re.c.

Referenced by rb_memsearch_qs_utf8().

static long rb_memsearch_ss ( const unsigned char *  xs,
long  m,
const unsigned char *  ys,
long  n 
) [inline, static]

Definition at line 100 of file re.c.

References CHAR_BIT, rb_bug(), and SIZEOF_VALUE.

Referenced by rb_memsearch().

long rb_reg_adjust_startpos ( VALUE  re,
VALUE  str,
long  pos,
int  reverse 
)

Definition at line 1308 of file re.c.

References onigenc_get_right_adjust_char_head(), ONIGENC_LEFT_ADJUST_CHAR_HEAD, ONIGENC_MBC_MAXLEN, range, rb_reg_prepare_enc(), RSTRING_LEN, RSTRING_PTR, and UChar.

VALUE rb_reg_alloc ( void   ) 

Definition at line 2468 of file re.c.

References rb_cRegexp, and rb_reg_s_alloc().

Referenced by rb_enc_reg_new(), rb_reg_compile(), and rb_reg_new_str().

int rb_reg_backref_number ( VALUE  match,
VALUE  backref 
)

Definition at line 1062 of file re.c.

References match_backref_number().

Referenced by rb_str_subpat(), and rb_str_subpat_set().

static VALUE rb_reg_casefold_p ( VALUE  re  )  [static]

Definition at line 644 of file re.c.

References ONIG_OPTION_IGNORECASE, Qfalse, Qtrue, rb_reg_check(), and RREGEXP.

Referenced by Init_Regexp().

static void rb_reg_check ( VALUE  re  )  [static]

Definition at line 310 of file re.c.

References rb_eTypeError, rb_raise(), RREGEXP, RREGEXP_SRC, and RREGEXP_SRC_PTR.

Referenced by rb_reg_casefold_p(), rb_reg_desc(), rb_reg_equal(), rb_reg_init_copy(), rb_reg_initialize_m(), rb_reg_named_captures(), rb_reg_names(), rb_reg_options(), rb_reg_prepare_enc(), rb_reg_prepare_re(), rb_reg_source(), rb_reg_to_s(), and reg_hash().

VALUE rb_reg_check_preprocess ( VALUE  str  ) 

Definition at line 2290 of file re.c.

References buf, err, Qnil, rb_enc_get(), RB_GC_GUARD, rb_reg_error_desc(), rb_reg_preprocess(), RSTRING_LEN, RSTRING_PTR, and StringValue.

VALUE rb_reg_compile ( VALUE  str,
int  options,
const char *  sourcefile,
int  sourceline 
)

Definition at line 2517 of file re.c.

References err, FL_SET, Qnil, rb_reg_alloc(), rb_reg_error_desc(), rb_reg_initialize_str(), rb_set_errinfo(), rb_str_new(), and REG_LITERAL.

static VALUE rb_reg_desc ( const char *  s,
long  len,
VALUE  re 
) [static]

Definition at line 407 of file re.c.

References NULL, OBJ_INFECT, option_to_str(), rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_asciicompat, rb_enc_associate(), rb_enc_copy(), rb_enc_get(), rb_reg_check(), rb_reg_expr_str(), rb_str_buf_cat2(), rb_str_buf_new2, rb_usascii_encoding(), RBASIC, REG_ENCODING_NONE, and RREGEXP.

Referenced by rb_reg_inspect(), and rb_reg_raise().

VALUE rb_reg_eqq ( VALUE  re,
VALUE  str 
)

Definition at line 2765 of file re.c.

References FALSE, NIL_P, Qfalse, Qnil, Qtrue, rb_backref_set(), rb_reg_search(), and reg_operand().

Referenced by Init_Regexp().

static VALUE rb_reg_equal ( VALUE  re1,
VALUE  re2 
) [static]

Definition at line 2588 of file re.c.

References ENCODING_GET, FL_TEST, KCODE_FIXED, memcmp(), re_pattern_buffer::options, RRegexp::ptr, Qfalse, Qtrue, rb_reg_check(), RREGEXP, RREGEXP_SRC_LEN, RREGEXP_SRC_PTR, T_REGEXP, and TYPE.

Referenced by Init_Regexp(), and match_equal().

static VALUE rb_reg_error_desc ( VALUE  str,
int  options,
const char *  err 
) [static]

Definition at line 619 of file re.c.

References rb_enc_get(), rb_enc_reg_error_desc(), RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_reg_check_preprocess(), rb_reg_compile(), and rb_reg_raise_str().

static void rb_reg_expr_str ( VALUE  str,
const char *  s,
long  len,
rb_encoding enc,
rb_encoding resenc 
) [static]

Definition at line 320 of file re.c.

References b(), mbclen, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, rb_enc_ascget(), rb_enc_asciicompat, rb_enc_isprint, rb_enc_isspace, rb_enc_mbc_to_codepoint, rb_enc_precise_mbclen(), rb_enc_unicode_p(), rb_str_buf_cat(), rb_str_buf_cat_escaped_char(), and snprintf.

Referenced by rb_enc_reg_error_desc(), rb_reg_desc(), and rb_reg_to_s().

static VALUE rb_reg_fixed_encoding_p ( VALUE  re  )  [static]

Definition at line 1211 of file re.c.

References FL_TEST, KCODE_FIXED, Qfalse, and Qtrue.

Referenced by Init_Regexp(), rb_reg_prepare_enc(), and rb_reg_s_union().

static VALUE rb_reg_hash ( VALUE  re  )  [static]

Definition at line 2554 of file re.c.

References LONG2FIX, and reg_hash().

Referenced by Init_Regexp().

static VALUE rb_reg_init_copy ( VALUE  copy,
VALUE  re 
) [static]

Definition at line 3257 of file re.c.

References err, len, NULL, rb_check_frozen(), rb_enc_get(), rb_eTypeError, rb_obj_class(), rb_obj_is_instance_of(), rb_raise(), rb_reg_check(), rb_reg_initialize(), rb_reg_options(), rb_reg_raise(), RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by Init_Regexp().

VALUE rb_reg_init_str ( VALUE  re,
VALUE  s,
int  options 
)

Definition at line 2480 of file re.c.

References err, NULL, rb_reg_initialize_str(), and rb_reg_raise_str().

Referenced by rb_reg_new_str().

static int rb_reg_initialize ( VALUE  obj,
const char *  s,
long  len,
rb_encoding enc,
int  options,
onig_errmsg_buffer  err,
const char *  sourcefile,
int  sourceline 
) [static]

Definition at line 2371 of file re.c.

References ARG_ENCODING_FIXED, ARG_ENCODING_NONE, ARG_REG_OPTION_MASK, errcpy, FL_TEST, KCODE_FIXED, make_regexp(), OBJ_FREEZE, OBJ_UNTRUSTED, RRegexp::ptr, Qnil, rb_ascii8bit_encoding(), rb_check_frozen(), rb_enc_associate(), rb_enc_dummy_p(), rb_enc_str_new(), rb_eSecurityError, rb_eTypeError, RB_GC_GUARD, rb_raise(), rb_reg_preprocess(), rb_safe_level, rb_usascii_encoding(), REG_ENCODING_NONE, REG_LITERAL, RREGEXP, RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_enc_reg_new(), rb_reg_init_copy(), rb_reg_initialize_m(), and rb_reg_initialize_str().

static VALUE rb_reg_initialize_m ( int  argc,
VALUE argv,
VALUE  self 
) [static]

Definition at line 2898 of file re.c.

References ARG_ENCODING_NONE, err, FIX2INT, FIXNUM_P, len, NIL_P, NULL, ONIG_OPTION_IGNORECASE, rb_ascii8bit_encoding(), rb_eArgError, rb_enc_get(), rb_enc_str_new(), rb_raise(), rb_reg_check(), rb_reg_initialize(), rb_reg_initialize_str(), rb_reg_options(), rb_reg_raise_str(), rb_warn(), RREGEXP_SRC_LEN, RREGEXP_SRC_PTR, RSTRING_LEN, RTEST, StringValuePtr, T_REGEXP, and TYPE.

Referenced by Init_Regexp().

static int rb_reg_initialize_str ( VALUE  obj,
VALUE  str,
int  options,
onig_errmsg_buffer  err,
const char *  sourcefile,
int  sourceline 
) [static]

Definition at line 2432 of file re.c.

References ARG_ENCODING_NONE, ENC_CODERANGE_7BIT, errcpy, OBJ_INFECT, rb_ascii8bit_encoding(), rb_enc_get(), rb_enc_str_coderange(), RB_GC_GUARD, rb_reg_initialize(), RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_reg_compile(), rb_reg_init_str(), and rb_reg_initialize_m().

static VALUE rb_reg_inspect ( VALUE  re  )  [static]

Definition at line 473 of file re.c.

References rb_any_to_s(), rb_reg_desc(), RREGEXP, RREGEXP_SRC, RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by Init_Regexp().

VALUE rb_reg_last_match ( VALUE  match  ) 

Definition at line 1470 of file re.c.

References rb_reg_nth_match().

Referenced by last_match_getter(), match_to_s(), and vm_getspecial().

VALUE rb_reg_match ( VALUE  re,
VALUE  str 
)

Definition at line 2738 of file re.c.

References LONG2FIX, Qnil, rb_str_sublen(), and reg_match_pos().

Referenced by Init_Regexp(), and rb_str_match().

VALUE rb_reg_match2 ( VALUE  re  ) 

Definition at line 2794 of file re.c.

References LONG2FIX, Qnil, rb_backref_set(), rb_lastline_get(), rb_reg_search(), rb_str_sublen(), T_STRING, and TYPE.

Referenced by Init_Regexp().

VALUE rb_reg_match_last ( VALUE  match  ) 

Definition at line 1533 of file re.c.

References BEG, match_check(), NIL_P, re_registers::num_regs, Qnil, rb_reg_nth_match(), and RMATCH_REGS.

Referenced by last_paren_match_getter(), and vm_getspecial().

static VALUE rb_reg_match_m ( int  argc,
VALUE argv,
VALUE  re 
) [static]

Definition at line 2842 of file re.c.

References NIL_P, NUM2LONG(), Qnil, rb_backref_get(), rb_backref_set(), rb_block_given_p(), rb_match_busy(), rb_scan_args(), rb_yield(), reg_match_pos(), and result.

Referenced by Init_Regexp().

VALUE rb_reg_match_post ( VALUE  match  ) 

Definition at line 1515 of file re.c.

References BEG, END, match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_str_subseq(), RMATCH, RMATCH_REGS, and RSTRING_LEN.

Referenced by Init_Regexp(), postmatch_getter(), and vm_getspecial().

VALUE rb_reg_match_pre ( VALUE  match  ) 

Definition at line 1488 of file re.c.

References BEG, match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_str_subseq(), RMATCH, and RMATCH_REGS.

Referenced by Init_Regexp(), prematch_getter(), and vm_getspecial().

static VALUE rb_reg_named_captures ( VALUE  re  )  [static]

Definition at line 755 of file re.c.

References hash(), onig_foreach_name(), rb_hash_new(), rb_reg_check(), reg_named_captures_iter(), and RREGEXP.

Referenced by Init_Regexp().

static VALUE rb_reg_names ( VALUE  re  )  [static]

Definition at line 708 of file re.c.

References onig_foreach_name(), rb_ary_new(), rb_reg_check(), reg_names_iter(), and RREGEXP.

Referenced by Init_Regexp(), and match_names().

VALUE rb_reg_new ( const char *  s,
long  len,
int  options 
)

Definition at line 2511 of file re.c.

References rb_ascii8bit_encoding(), and rb_enc_reg_new().

Referenced by make_patterns(), and proc_options().

VALUE rb_reg_new_ary ( VALUE  ary,
int  opt 
)

Definition at line 2492 of file re.c.

References rb_reg_new_str(), and rb_reg_preprocess_dregexp().

VALUE rb_reg_new_str ( VALUE  s,
int  options 
)

Definition at line 2474 of file re.c.

References rb_reg_alloc(), and rb_reg_init_str().

Referenced by r_object0(), rb_reg_new_ary(), rb_reg_regcomp(), and rb_reg_s_union().

VALUE rb_reg_nth_defined ( int  nth,
VALUE  match 
)

Definition at line 1426 of file re.c.

References BEG, match_check(), NIL_P, re_registers::num_regs, Qfalse, Qnil, Qtrue, and RMATCH_REGS.

VALUE rb_reg_nth_match ( int  nth,
VALUE  match 
)

Definition at line 1444 of file re.c.

References BEG, END, re_registers::end, len, match_check(), NIL_P, re_registers::num_regs, OBJ_INFECT, Qnil, rb_str_subseq(), RMATCH, and RMATCH_REGS.

Referenced by match_aref(), match_entry(), match_inspect(), rb_reg_last_match(), rb_reg_match_last(), rb_reg_s_last_match(), rb_str_rpartition(), rb_str_sub_bang(), rb_str_subpat(), scan_once(), str_gsub(), and vm_getspecial().

int rb_reg_options ( VALUE  re  ) 

Definition at line 3072 of file re.c.

References ARG_ENCODING_FIXED, ARG_ENCODING_NONE, ARG_REG_OPTION_MASK, KCODE_FIXED, options(), rb_reg_check(), RBASIC, REG_ENCODING_NONE, and RREGEXP.

Referenced by rb_reg_init_copy(), rb_reg_initialize_m(), rb_reg_options_m(), and w_object().

static VALUE rb_reg_options_m ( VALUE  re  )  [static]

Definition at line 676 of file re.c.

References INT2NUM(), options(), and rb_reg_options().

Referenced by Init_Regexp().

static rb_encoding* rb_reg_prepare_enc ( VALUE  re,
VALUE  str,
int  warn 
) [static]

Definition at line 1234 of file re.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, rb_ascii8bit_encoding(), rb_eArgError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, rb_enc_str_asciicompat_p, rb_enc_str_coderange(), rb_raise(), rb_reg_check(), rb_reg_fixed_encoding_p(), rb_warn(), RBASIC, reg_enc_error(), REG_ENCODING_NONE, and RREGEXP.

Referenced by rb_reg_adjust_startpos(), and rb_reg_prepare_re().

regex_t* rb_reg_prepare_re ( VALUE  re,
VALUE  str 
)

Definition at line 1269 of file re.c.

References re_pattern_buffer::enc, err, onig_error_code_to_str(), onig_new(), OnigDefaultSyntax, re_pattern_buffer::options, Qnil, rb_eArgError, RB_GC_GUARD, rb_raise(), rb_reg_check(), rb_reg_prepare_enc(), rb_reg_preprocess(), rb_reg_raise(), RREGEXP, RREGEXP_SRC_LEN, RREGEXP_SRC_PTR, RSTRING_LEN, RSTRING_PTR, and UChar.

Referenced by rb_reg_search(), and strscan_do_scan().

static VALUE rb_reg_preprocess ( const char *  p,
const char *  end,
rb_encoding enc,
rb_encoding **  fixed_enc,
onig_errmsg_buffer  err 
) [static]

Definition at line 2260 of file re.c.

References buf, Qnil, rb_enc_asciicompat, rb_enc_associate(), rb_str_buf_new(), and unescape_nonascii().

Referenced by rb_reg_check_preprocess(), rb_reg_initialize(), rb_reg_prepare_re(), and rb_reg_preprocess_dregexp().

static VALUE rb_reg_preprocess_dregexp ( VALUE  ary,
int  options 
) [static]

Definition at line 2313 of file re.c.

References ARG_ENCODING_NONE, buf, ENC_CODERANGE_7BIT, err, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ascii8bit_encoding(), rb_eArgError, rb_enc_associate(), rb_enc_get(), rb_enc_name, rb_enc_str_coderange(), rb_eRegexpError, rb_raise(), rb_reg_preprocess(), rb_str_buf_append(), rb_str_new3, result, RSTRING_LEN, RSTRING_PTR, and StringValue.

Referenced by rb_reg_new_ary().

VALUE rb_reg_quote ( VALUE  str  ) 

Definition at line 2954 of file re.c.

References mbclen, OBJ_INFECT, rb_enc_ascget(), rb_enc_associate(), rb_enc_copy(), rb_enc_get(), rb_enc_mbcput, rb_enc_str_asciionly_p(), rb_str_new(), rb_str_new3, rb_str_resize(), rb_usascii_encoding(), RSTRING_LEN, and RSTRING_PTR.

Referenced by get_pat(), and rb_reg_s_quote().

static void rb_reg_raise ( const char *  s,
long  len,
const char *  err,
VALUE  re 
) [static]

Definition at line 588 of file re.c.

References rb_eRegexpError, rb_raise(), rb_reg_desc(), and RSTRING_PTR.

Referenced by rb_reg_init_copy(), rb_reg_prepare_re(), and rb_reg_search().

static void rb_reg_raise_str ( VALUE  str,
int  options,
const char *  err 
) [static]

Definition at line 626 of file re.c.

References rb_exc_raise(), and rb_reg_error_desc().

Referenced by rb_reg_init_str(), and rb_reg_initialize_m().

VALUE rb_reg_regcomp ( VALUE  str  ) 

Definition at line 2534 of file re.c.

References ENCODING_GET, memcmp(), rb_reg_new_str(), reg_cache, RREGEXP_SRC_LEN, RREGEXP_SRC_PTR, RSTRING_LEN, and RSTRING_PTR.

Referenced by get_pat(), and rb_str_split_m().

VALUE rb_reg_regsub ( VALUE  str,
VALUE  src,
struct re_registers regs,
VALUE  regexp 
)

Definition at line 3280 of file re.c.

References ASCGET, BEG, END, mbclen, name, name_to_backref_number(), re_registers::num_regs, onig_noname_group_capture_is_active(), rb_enc_asciicompat, rb_enc_get(), rb_enc_str_buf_cat(), rb_eRuntimeError, rb_raise(), rb_str_buf_new(), RREGEXP, RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_str_sub_bang(), and str_gsub().

static VALUE rb_reg_s_alloc ( VALUE  klass  )  [static]

Definition at line 2455 of file re.c.

References NEWOBJ, OBJSETUP, and T_REGEXP.

Referenced by Init_Regexp(), and rb_reg_alloc().

static VALUE rb_reg_s_last_match ( int  argc,
VALUE argv 
) [static]

Definition at line 3470 of file re.c.

References match_backref_number(), match_getter(), NIL_P, Qnil, rb_backref_get(), rb_reg_nth_match(), and rb_scan_args().

Referenced by Init_Regexp().

static VALUE rb_reg_s_quote ( VALUE  c,
VALUE  str 
) [static]

Definition at line 3066 of file re.c.

References rb_reg_quote(), reg_operand(), and TRUE.

Referenced by Init_Regexp(), and rb_reg_s_union().

static VALUE rb_reg_s_try_convert ( VALUE  dummy,
VALUE  re 
) [static]

Definition at line 3107 of file re.c.

References rb_check_regexp_type().

Referenced by Init_Regexp().

static VALUE rb_reg_s_union ( VALUE  self,
VALUE  args0 
) [static]

Definition at line 3113 of file re.c.

References argc, NIL_P, Qnil, RARRAY_LEN, rb_ary_entry(), rb_ascii8bit_encoding(), rb_check_regexp_type(), rb_class_new_instance(), rb_cRegexp, rb_eArgError, rb_enc_asciicompat, rb_enc_associate(), rb_enc_copy(), rb_enc_get(), rb_enc_name, rb_enc_str_asciicompat_p, rb_enc_str_asciionly_p(), rb_raise(), rb_reg_fixed_encoding_p(), rb_reg_new_str(), rb_reg_s_quote(), rb_reg_to_s(), rb_str_append(), rb_str_buf_cat_ascii(), rb_str_buf_new(), rb_str_new2, and StringValue.

Referenced by rb_reg_s_union_m().

static VALUE rb_reg_s_union_m ( VALUE  self,
VALUE  args 
) [static]

Definition at line 3245 of file re.c.

References NIL_P, RARRAY_LEN, rb_ary_entry(), rb_check_array_type(), and rb_reg_s_union().

Referenced by Init_Regexp().

long rb_reg_search ( VALUE  re,
VALUE  str,
long  pos,
int  reverse 
)

Definition at line 1339 of file re.c.

References err, FL_TAINT, FL_TEST, FL_UNSET, match_alloc(), MATCH_BUSY, MEMZERO, NIL_P, OBJ_INFECT, OBJ_TAINT, onig_error_code_to_str(), onig_free(), ONIG_MISMATCH, ONIG_OPTION_NONE, onig_region_copy(), onig_region_free(), onig_search(), Qnil, range, rb_backref_get(), rb_backref_set(), rb_cMatch, rb_reg_prepare_re(), rb_reg_raise(), rb_safe_level, rb_str_new4, result, RMATCH, RMATCH_REGS, RREGEXP, RREGEXP_SRC_LEN, RREGEXP_SRC_PTR, RSTRING_LEN, RSTRING_PTR, and UChar.

Referenced by rb_reg_eqq(), rb_reg_match2(), rb_str_index_m(), rb_str_partition(), rb_str_rindex_m(), rb_str_rpartition(), rb_str_scan(), rb_str_split_m(), rb_str_sub_bang(), rb_str_subpat(), rb_str_subpat_set(), reg_match_pos(), scan_once(), and str_gsub().

static VALUE rb_reg_source ( VALUE  re  )  [static]

Definition at line 450 of file re.c.

References OBJ_TAINT, OBJ_TAINTED, rb_enc_get(), rb_enc_str_new(), rb_reg_check(), RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by Init_Regexp().

static VALUE rb_reg_to_s ( VALUE  re  )  [static]

Definition at line 503 of file re.c.

References char_to_option(), err, len, NULL, OBJ_INFECT, onig_free(), onig_new(), ONIG_OPTION_DEFAULT, ONIG_OPTION_EXTEND, ONIG_OPTION_IGNORECASE, ONIG_OPTION_MULTILINE, OnigDefaultSyntax, option_to_str(), options(), rb_enc_copy(), rb_enc_get(), rb_reg_check(), rb_reg_expr_str(), rb_str_buf_cat2(), rb_str_buf_new2, RREGEXP, RREGEXP_SRC_LEN, RREGEXP_SRC_PTR, and UChar.

Referenced by Init_Regexp(), and rb_reg_s_union().

int rb_str_buf_cat_escaped_char ( VALUE  result,
unsigned int  c,
int  unicode_p 
)

Definition at line 4113 of file string.c.

References buf, CHAR_ESC_LEN, ISPRINT, rb_str_buf_cat(), and snprintf.

Referenced by rb_reg_expr_str(), and rb_str_inspect().

static void re_warn ( const char *  s  )  [static]

Definition at line 3485 of file re.c.

References rb_warn().

Referenced by Init_Regexp().

static int read_escaped_byte ( const char **  pp,
const char *  end,
onig_errmsg_buffer  err 
) [static]

Definition at line 1896 of file re.c.

References errcpy, len, scan_hex, and scan_oct.

Referenced by unescape_escaped_nonascii().

static void reg_enc_error ( VALUE  re,
VALUE  str 
) [static]

Definition at line 1225 of file re.c.

References rb_eEncCompatError, rb_enc_get(), rb_enc_name, and rb_raise().

Referenced by rb_reg_prepare_enc().

static st_index_t reg_hash ( VALUE  re  )  [static]

Definition at line 2561 of file re.c.

References rb_hash_end, rb_hash_uint, rb_memhash(), rb_reg_check(), RREGEXP, RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by match_hash(), and rb_reg_hash().

static long reg_match_pos ( VALUE  re,
VALUE strp,
long  pos 
) [static]

Definition at line 2667 of file re.c.

References NIL_P, NUM2INT, Qnil, rb_backref_set(), rb_reg_search(), rb_str_length(), rb_str_offset(), reg_operand(), and TRUE.

Referenced by rb_reg_match(), and rb_reg_match_m().

static int reg_named_captures_iter ( const OnigUChar name,
const OnigUChar name_end,
int  back_num,
int *  back_refs,
OnigRegex  regex,
void *  arg 
) [static]

Definition at line 717 of file re.c.

References hash(), INT2NUM(), rb_ary_new2(), rb_ary_store(), rb_hash_aset(), and rb_str_new().

Referenced by rb_reg_named_captures().

static int reg_names_iter ( const OnigUChar name,
const OnigUChar name_end,
int  back_num,
int *  back_refs,
OnigRegex  regex,
void *  arg 
) [static]

Definition at line 683 of file re.c.

References rb_ary_push(), and rb_str_new().

Referenced by rb_reg_names().

static VALUE reg_operand ( VALUE  s,
int  check 
) [static]

Definition at line 2651 of file re.c.

References NIL_P, rb_check_string_type(), rb_eTypeError, rb_obj_classname(), rb_raise(), rb_sym_to_s(), and SYMBOL_P.

Referenced by rb_reg_eqq(), rb_reg_s_quote(), and reg_match_pos().

static int unescape_escaped_nonascii ( const char **  pp,
const char *  end,
rb_encoding enc,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
) [static]

Definition at line 2004 of file re.c.

References ALLOCA_N, errcpy, MBCLEN_INVALID_P, MBCLEN_NEEDMORE_P, rb_enc_mbmaxlen, rb_enc_precise_mbclen(), rb_str_buf_cat(), read_escaped_byte(), and snprintf.

Referenced by unescape_nonascii().

static int unescape_nonascii ( const char *  p,
const char *  end,
rb_encoding enc,
VALUE  buf,
rb_encoding **  encp,
int *  has_property,
onig_errmsg_buffer  err 
) [static]

Definition at line 2154 of file re.c.

References errcpy, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, rb_enc_precise_mbclen(), rb_str_buf_cat(), ruby_scan_oct(), unescape_escaped_nonascii(), unescape_unicode_bmp(), and unescape_unicode_list().

Referenced by rb_reg_preprocess().

static int unescape_unicode_bmp ( const char **  pp,
const char *  end,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
) [static]

Definition at line 2131 of file re.c.

References append_utf8(), errcpy, len, and ruby_scan_hex().

Referenced by unescape_nonascii().

static int unescape_unicode_list ( const char **  pp,
const char *  end,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
) [static]

Definition at line 2094 of file re.c.

References append_utf8(), errcpy, ISSPACE, len, and ruby_scan_hex().

Referenced by unescape_nonascii().

static void update_char_offset ( VALUE  match  )  [static]

Definition at line 856 of file re.c.

References ALLOCA_N, BEG, rmatch_offset::beg, pair_t::byte_pos, rmatch::char_offset, rmatch::char_offset_num_allocated, rmatch::char_offset_updated, pair_t::char_pos, END, rmatch_offset::end, re_registers::num_regs, pair_byte_cmp(), rb_enc_get(), rb_enc_mbmaxlen, rb_enc_strlen(), REALLOC_N, rmatch::regs, RMATCH, RSTRING_LEN, and RSTRING_PTR.

Referenced by match_begin(), match_end(), and match_offset().


Variable Documentation

VALUE rb_cMatch

Definition at line 822 of file re.c.

VALUE rb_cRegexp

Definition at line 1893 of file re.c.

VALUE rb_eRegexpError

Definition at line 19 of file re.c.

VALUE reg_cache [static]

Definition at line 2531 of file re.c.

Referenced by Init_Regexp(), and rb_reg_regcomp().


Generated on Wed Aug 10 09:18:55 2011 for Ruby by  doxygen 1.4.7