summaryrefslogtreecommitdiff
path: root/re.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-12 06:09:53 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-12 06:09:53 +0000
commitab24f2b07729dc022cd954355d6797b48f1b1552 (patch)
treed9e06dc2c8343c851167b692fbe469544994d9b9 /re.c
parentb15fe02d194990c0eba875b733b41ae598e90211 (diff)
* re.c (rb_reg_prepare_re): made non static with small refactoring.
* ext/strscan/strscan.c (strscan_do_scan): should adjust encoding before regex searching. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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) {