summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2012-11-13 16:50:41 +0900
committerTomoyuki Sahara <[email protected]>2012-11-13 16:50:41 +0900
commitb1f5840aefe0c4edac9dc3f238bdb757521eb67c (patch)
treee0706bb7da909491dbf2aa8e0b34496db81afb95 /src
parent1cd9d7e40abb8112fe9f05193f9af6ec357a71eb (diff)
downloadmruby-b1f5840aefe0c4edac9dc3f238bdb757521eb67c.tar.gz
mruby-b1f5840aefe0c4edac9dc3f238bdb757521eb67c.zip
fix the issue String#slice with Range may return broken String.
Diffstat (limited to 'src')
-rw-r--r--src/range.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/range.c b/src/range.c
index 6fe7964fe..085d5b1c0 100644
--- a/src/range.c
+++ b/src/range.c
@@ -286,7 +286,7 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp,
if (end > len) end = len;
}
if (end < 0) end += len;
- if (!r->excl) end++; /* include end point */
+ if (!r->excl && end < len) end++; /* include end point */
len = end - beg;
if (len < 0) len = 0;