summaryrefslogtreecommitdiff
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
commita4fe713cb199934e8b7870850c50fcc24fb5685f (patch)
tree7d0763676e49c49f8b06b2a74042d7530f71a1e0
parentc9accd03e721f1455ccdf3f09f5251d6b93c1b4b (diff)
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--ext/md5/md5init.c1
-rw-r--r--string.c4
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 85c3027f19..39a4f7befc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Jul 23 12:55:04 2000 Dave Thomas <Dave@Thomases.com>
+
+ * string.c (rb_str_rindex): Support negative end position.
+
Fri Jul 21 17:35:01 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
* parse.y (aref_args): command_call now be permitted as
diff --git a/ext/md5/md5init.c b/ext/md5/md5init.c
index f3dafed336..a57d5f8f30 100644
--- a/ext/md5/md5init.c
+++ b/ext/md5/md5init.c
@@ -105,6 +105,7 @@ Init_md5()
cMD5 = rb_define_class("MD5", rb_cObject);
rb_define_singleton_method(cMD5, "new", md5_new, -1);
+ rb_define_singleton_method(cMD5, "md5", md5_new, -1);
rb_define_method(cMD5, "update", md5_update, 1);
rb_define_method(cMD5, "digest", md5_digest, 0);
diff --git a/string.c b/string.c
index 7943465ef3..678b1b8802 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 {