diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-12 06:09:53 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-12 06:09:53 +0000 |
commit | ab24f2b07729dc022cd954355d6797b48f1b1552 (patch) | |
tree | d9e06dc2c8343c851167b692fbe469544994d9b9 /re.c | |
parent | b15fe02d194990c0eba875b733b41ae598e90211 (diff) | |
download | ruby-ab24f2b07729dc022cd954355d6797b48f1b1552.tar.gz |
* 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.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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) { |