diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | ext/md5/md5init.c | 1 | ||||
-rw-r--r-- | string.c | 4 |
3 files changed, 9 insertions, 0 deletions
@@ -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); @@ -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 { |