diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-06-22 01:39:44 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-06-22 01:39:44 +0000 |
| commit | c49a3f37d7c1ae32c8c52421ac748e95c6f654a9 (patch) | |
| tree | fe9b4ee30fad04c9f24b539174bc78b6dcbe9dcf | |
| parent | 9dddfc2dc374838f1e728fe8eecd9f607f059b6e (diff) | |
| download | ruby-c49a3f37d7c1ae32c8c52421ac748e95c6f654a9.tar.gz ruby-c49a3f37d7c1ae32c8c52421ac748e95c6f654a9.tar.xz ruby-c49a3f37d7c1ae32c8c52421ac748e95c6f654a9.zip | |
* string.c (rb_str_aref): "abc"[3] should not return an empty
string but nil. [ruby-dev:28786]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | string.c | 6 |
2 files changed, 11 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Thu Jun 22 10:31:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org> + + * string.c (rb_str_aref): "abc"[3] should not return an empty + string but nil. [ruby-dev:28786] + Thu Jun 22 05:15:58 2006 Tanaka Akira <akr@m17n.org> * ext/socket/socket.c (sock_s_socketpair): try GC only once. @@ -1478,6 +1478,12 @@ rb_str_aref(VALUE str, VALUE indx) idx = FIX2LONG(indx); num_index: + if (idx < 0) { + idx = RSTRING(str)->len + idx; + } + if (idx < 0 || RSTRING(str)->len <= idx) { + return Qnil; + } return rb_str_substr(str, idx, 1); case T_REGEXP: |
