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 + + * string.c (rb_str_rindex): Support negative end position. + Fri Jul 21 17:35:01 2000 Yukihiro Matsumoto * 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 {