From 9d228b13deccfdf23f44e2c465f723a2a7b3bcbd Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 14 Dec 1999 06:50:43 +0000 Subject: 19991214 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- re.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 're.c') diff --git a/re.c b/re.c index 9452e42116..46ed3ef4a9 100644 --- a/re.c +++ b/re.c @@ -507,6 +507,32 @@ rb_reg_prepare_re(reg) } } +int +rb_reg_adjust_startpos(reg, str, pos, reverse) + VALUE reg, str; + int pos, reverse; +{ + int range; + + if (may_need_recompile) + rb_reg_prepare_re(reg); + + if (FL_TEST(reg, KCODE_FIXED)) + kcode_set_option(reg); + else if (reg_kcode != curr_kcode) + kcode_reset_option(); + + if (reverse) { + range = -pos; + } + else { + range = RSTRING(str)->len - pos; + } + return re_adjust_startpos(RREGEXP(reg)->ptr, + RSTRING(str)->ptr, RSTRING(str)->len, + pos, range); +} + int rb_reg_search(reg, str, pos, reverse) VALUE reg, str; -- cgit v1.2.3