Commit 4bf76a67 authored by Masamitsu MURASE's avatar Masamitsu MURASE

Modify `Range#initialize` to accept optional `exclusive` argument.

parent f9b836a6
......@@ -125,11 +125,15 @@ mrb_value
mrb_range_initialize(mrb_state *mrb, mrb_value range)
{
mrb_value beg, end;
mrb_value flags;
int exclusive;
int n;
mrb_get_args(mrb, "ooo", &beg, &end, &flags);
n = mrb_get_args(mrb, "oo|b", &beg, &end, &exclusive);
if (n != 3) {
exclusive = 0;
}
/* Ranges are immutable, so that they should be initialized only once. */
range_init(mrb, range, beg, end, mrb_test(flags));
range_init(mrb, range, beg, end, exclusive);
return range;
}
/*
......@@ -444,7 +448,7 @@ mrb_init_range(mrb_state *mrb)
mrb_define_method(mrb, r, "exclude_end?", mrb_range_excl, ARGS_NONE()); /* 15.2.14.4.6 */
mrb_define_method(mrb, r, "first", mrb_range_beg, ARGS_NONE()); /* 15.2.14.4.7 */
mrb_define_method(mrb, r, "include?", mrb_range_include, ARGS_REQ(1)); /* 15.2.14.4.8 */
mrb_define_method(mrb, r, "initialize", mrb_range_initialize, ARGS_REQ(4)); /* 15.2.14.4.9 */
mrb_define_method(mrb, r, "initialize", mrb_range_initialize, ARGS_ANY()); /* 15.2.14.4.9 */
mrb_define_method(mrb, r, "last", mrb_range_end, ARGS_NONE()); /* 15.2.14.4.10 */
mrb_define_method(mrb, r, "member?", mrb_range_include, ARGS_REQ(1)); /* 15.2.14.4.11 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment