summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-02-26 18:11:54 -0800
committerYukihiro "Matz" Matsumoto <[email protected]>2013-02-26 18:11:54 -0800
commitd7904418faa610daec7483267ca158195bca7b7e (patch)
tree2f71b5d0783ae7de42920d46d14cb2b727761973 /src/string.c
parentced8fea305806cb955677d87a574098afc4e2143 (diff)
parentcb7cf4e795bab952802fce023ff19c79bf66f74d (diff)
downloadmruby-d7904418faa610daec7483267ca158195bca7b7e.tar.gz
mruby-d7904418faa610daec7483267ca158195bca7b7e.zip
Merge pull request #893 from monaka/pr-simplify-mrb_range_beg_len
Simplify mrb_range_beg_len(). Don't use OTHER macro.
Diffstat (limited to 'src/string.c')
-rw-r--r--src/string.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/string.c b/src/string.c
index 205c39876..7af0d1d59 100644
--- a/src/string.c
+++ b/src/string.c
@@ -759,23 +759,22 @@ num_index:
return mrb_str_dup(mrb, indx);
return mrb_nil_value();
- default:
+ case MRB_TT_RANGE:
/* check if indx is Range */
{
mrb_int beg, len;
mrb_value tmp;
len = RSTRING_LEN(str);
- switch (mrb_range_beg_len(mrb, indx, &beg, &len, len, 0)) {
- case FALSE:
- break;
- case 2/*OTHER*/:
- return mrb_nil_value();
- default:
- tmp = mrb_str_subseq(mrb, str, beg, len);
- return tmp;
+ if (mrb_range_beg_len(mrb, indx, &beg, &len, len)) {
+ tmp = mrb_str_subseq(mrb, str, beg, len);
+ return tmp;
+ }
+ else {
+ return mrb_nil_value();
}
}
+ default:
idx = mrb_fixnum(indx);
goto num_index;
}