From 1ef2a1e88643421a15bbf98821a0ecf9164dc2a1 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> Date: Fri, 5 Feb 1999 10:27:34 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'v1_3_1_990205'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_3_1_990205@392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- re.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 're.c') diff --git a/re.c b/re.c index 287c6c1bd4..5f176bb719 100644 --- a/re.c +++ b/re.c @@ -5,7 +5,7 @@ $Author$ created at: Mon Aug 9 18:24:49 JST 1993 - Copyright (C) 1993-1998 Yukihiro Matsumoto + Copyright (C) 1993-1999 Yukihiro Matsumoto ************************************************/ @@ -330,7 +330,7 @@ rb_reg_kcode_method(re) static Regexp* make_regexp(s, len, flag) char *s; - size_t len, flag; + int len, flag; { Regexp *rp; char *err; @@ -482,6 +482,9 @@ rb_reg_search(reg, str, start, reverse) result = re_search(RREGEXP(reg)->ptr,RSTRING(str)->ptr,RSTRING(str)->len, start, range, regs); + if (FL_TEST(reg, KCODE_FIXED)) + kcode_reset_option(); + if (result == -2) { rb_reg_raise(RREGEXP(reg)->str, RREGEXP(reg)->len, "Stack overfow in regexp matcher", reg); @@ -653,7 +656,7 @@ static VALUE rb_reg_new_1(klass, s, len, options) VALUE klass; char *s; - size_t len; + int len; int options; /* CASEFOLD = 1 */ /* EXTENDED = 2 */ /* CODE_NONE = 4 */ @@ -711,7 +714,7 @@ rb_reg_new_1(klass, s, len, options) VALUE rb_reg_new(s, len, options) char *s; - size_t len; + int len; int options; { return rb_reg_new_1(rb_cRegexp, s, len, options); @@ -826,6 +829,9 @@ rb_reg_s_new(argc, argv, self) case 's': case 'S': flag |= 12; break; + case 'u': case 'U': + flag |= 16; + break; default: break; } @@ -837,7 +843,7 @@ rb_reg_s_new(argc, argv, self) } else { char *p; - size_t len; + int len; p = str2cstr(src, &len); return rb_reg_new_1(self, p, len, flag); @@ -886,6 +892,8 @@ rb_kcode() return MBCTYPE_EUC; case KCODE_SJIS: return MBCTYPE_SJIS; + case KCODE_UTF8: + return MBCTYPE_UTF8; case KCODE_NONE: return MBCTYPE_ASCII; } @@ -905,6 +913,8 @@ rb_reg_get_kcode(re) kcode |= 8; break; case KCODE_SJIS: kcode |= 12; break; + case KCODE_UTF8: + kcode |= 16; break; default: break; } -- cgit v1.2.3