summaryrefslogtreecommitdiffstats
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-07-24 07:19:34 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-07-24 07:19:34 +0000
commit90b3fa398f328fba7e13fbea2edbb3e6fa7a9241 (patch)
tree7d0763676e49c49f8b06b2a74042d7530f71a1e0 /string.c
parentb8331e2167d928a11f46b30c6c0dabe6cd362573 (diff)
downloadruby-90b3fa398f328fba7e13fbea2edbb3e6fa7a9241.tar.gz
ruby-90b3fa398f328fba7e13fbea2edbb3e6fa7a9241.tar.xz
ruby-90b3fa398f328fba7e13fbea2edbb3e6fa7a9241.zip
matz
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/string.c b/string.c
index 7943465ef..678b1b880 100644
--- a/string.c
+++ b/string.c
@@ -684,6 +684,10 @@ rb_str_rindex(argc, argv, str)
if (rb_scan_args(argc, argv, "11", &sub, &position) == 2) {
pos = NUM2INT(position);
+ if (pos < 0) {
+ pos += RSTRING(str)->len;
+ if (pos < 0) return Qnil;
+ }
if (pos > RSTRING(str)->len) pos = RSTRING(str)->len;
}
else {