diff --git a/ChangeLog b/ChangeLog index 8708125e9e..3524a204e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Mon Dec 17 18:42:23 2007 Yukihiro Matsumoto + + * string.c (scan_once): need no encoding compatibility check. + it's done inside of re_reg_seach(). + + * string.c (rb_str_split_m): ditto. + + * re.c (rb_reg_regsub): ditto. + Mon Dec 17 17:50:30 2007 Yukihiro Matsumoto * string.c (rb_str_index): check if substring is broken. diff --git a/re.c b/re.c index 4559d02be5..ce1d66863a 100644 --- a/re.c +++ b/re.c @@ -2695,7 +2695,6 @@ rb_reg_regsub(VALUE str, VALUE src, struct re_registers *regs, VALUE regexp) int no, clen; rb_encoding *enc = rb_enc_check(str, src); - rb_enc_check(str, regexp); p = s = RSTRING_PTR(str); e = s + RSTRING_LEN(str); diff --git a/string.c b/string.c index 76a0049530..62f5c31380 100644 --- a/string.c +++ b/string.c @@ -4129,9 +4129,6 @@ rb_str_split_m(int argc, VALUE *argv, VALUE str) int last_null = 0; struct re_registers *regs; - if (RREGEXP(spat)->len != 0) { - enc = rb_enc_check(str, spat); - } while ((end = rb_reg_search(spat, str, start, 0)) >= 0) { regs = RMATCH(rb_backref_get())->regs; if (start == end && BEG(0) == END(0)) { @@ -4733,7 +4730,7 @@ scan_once(VALUE str, VALUE pat, long *start) struct re_registers *regs; long i; - enc = rb_enc_check(str, pat); + enc = rb_enc_get(str); if (rb_reg_search(pat, str, *start, 0) >= 0) { match = rb_backref_get(); regs = RMATCH(match)->regs;