summaryrefslogtreecommitdiff
path: root/re.c
diff options
context:
space:
mode:
Diffstat (limited to 're.c')
-rw-r--r--re.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/re.c b/re.c
index 1f473817aa..b8b1588dd9 100644
--- a/re.c
+++ b/re.c
@@ -1181,8 +1181,8 @@ rb_reg_prepare_enc(VALUE re, VALUE str, int warn)
return RREGEXP(re)->ptr->enc;
}
-static regex_t *
-rb_reg_prepare_re(VALUE re, rb_encoding *enc)
+regex_t *
+rb_reg_prepare_re(VALUE re, VALUE str)
{
regex_t *reg = RREGEXP(re)->ptr;
onig_errmsg_buffer err = "";
@@ -1191,6 +1191,7 @@ rb_reg_prepare_re(VALUE re, rb_encoding *enc)
const char *pattern;
VALUE unescaped;
rb_encoding *fixed_enc = 0;
+ rb_encoding *enc = rb_reg_prepare_enc(re, str, 1);
if (reg->enc == enc) return reg;
@@ -1265,7 +1266,7 @@ rb_reg_search(VALUE re, VALUE str, int pos, int reverse)
return -1;
}
- reg = rb_reg_prepare_re(re, rb_reg_prepare_enc(re, str, 1));
+ reg = rb_reg_prepare_re(re, str);
FL_SET(re, REG_BUSY);
if (!reverse) {