diff --git a/mrbgems/mruby-regexp/src/regexp.c b/mrbgems/mruby-regexp/src/regexp.c index fa06557f55..ecd472436f 100644 --- a/mrbgems/mruby-regexp/src/regexp.c +++ b/mrbgems/mruby-regexp/src/regexp.c @@ -272,7 +272,7 @@ regexp_match_op(mrb_state *mrb, mrb_value self) static mrb_value regexp_case_match(mrb_state *mrb, mrb_value self) { - mrb_value str; + mrb_value str, md; mrb_regexp_pattern *pat; mrb_get_args(mrb, "o", &str); @@ -281,8 +281,8 @@ regexp_case_match(mrb_state *mrb, mrb_value self) pat = DATA_GET_PTR(mrb, self, ®exp_type, mrb_regexp_pattern); if (!pat) return mrb_false_value(); - int ncap = mrb_re_exec(mrb, pat, RSTRING_PTR(str), RSTRING_LEN(str), 0, NULL, 0); - return mrb_bool_value(ncap > 0); + md = exec_match(mrb, self, str, 0); + return mrb_bool_value(!mrb_nil_p(md)); } /* diff --git a/mrbgems/mruby-regexp/test/regexp.rb b/mrbgems/mruby-regexp/test/regexp.rb index 787c6898d7..b172bced4e 100644 --- a/mrbgems/mruby-regexp/test/regexp.rb +++ b/mrbgems/mruby-regexp/test/regexp.rb @@ -39,6 +39,9 @@ re = Regexp.new("abc") assert_true re === "abc" assert_false re === "xyz" + re = Regexp.new("hello (theo)") + assert_true re === "hello theo" + assert_equal "theo", $1 end assert("Regexp - character class") do