summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 85c3027f196..39a4f7befc4 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 f3dafed3362..a57d5f8f307 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 7943465ef31..678b1b8802f 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 {