From cd0971e27f8da253918374e38c329fe709eed429 Mon Sep 17 00:00:00 2001 From: drbrain Date: Thu, 5 Jul 2012 21:50:13 +0000 Subject: [PATCH] * array.c (rb_ary_aref): Added a description of the behavior of index positioning. [Bug #6680] * array.c (rb_ary_aset): ditto. Reordered sentences for clarity. * string.c (rb_str_aref_m): Added a description of the behavior of index positioning git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ array.c | 13 +++++++++---- string.c | 11 ++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 68bd4468a5..1e4e45c664 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Jul 6 06:49:50 2012 Eric Hodel + + * array.c (rb_ary_aref): Added a description of the behavior of + index positioning. [Bug #6680] + * array.c (rb_ary_aset): ditto. Reordered sentences for clarity. + * string.c (rb_str_aref_m): Added a description of the behavior of + index positioning + Fri Jul 6 05:38:44 2012 Eric Hodel * string.c (rb_str_bytesize): Improve documentation. Patch by Oscar diff --git a/array.c b/array.c index 170c8d2b63..7b2418a103 100644 --- a/array.c +++ b/array.c @@ -1016,7 +1016,9 @@ rb_ary_subseq(VALUE ary, long beg, long len) * elements, or returns a subarray specified by +range+ of indices. * * Negative indices count backward from the end of the array (-1 is the last - * element). + * element). For +start+ and +range+ cases the starting index is just before + * an element. Additionally, an empty array is returned when the starting + * index for an element range is at the end of the array. * * Returns +nil+ if the index (or starting index) are out of range. * @@ -1030,7 +1032,7 @@ rb_ary_subseq(VALUE ary, long beg, long len) * a[-3, 3] #=> [ "c", "d", "e" ] * # special cases * a[5] #=> nil - * a[6] #=> nil + * a[6, 1] #=> nil * a[5, 1] #=> [] * a[5..10] #=> [] * @@ -1436,8 +1438,11 @@ rb_ary_resize(VALUE ary, long len) * specified by the +range+ of indices. * * If indices are greater than the current capacity of the array, the array - * grows automatically. Negative indices will count backward from the end of - * the array. Inserts elements if +length+ is zero. + * grows automatically. Elements are inserted into the array at +start+ if + * +length+ is zero. + * + * Negative indices will count backward from the end of the array. For + * +start+ and +range+ cases the starting index is just before an element. * * An IndexError is raised if a negative index points past the beginning of * the array. diff --git a/string.c b/string.c index c49a1b11dc..82c62e6a42 100644 --- a/string.c +++ b/string.c @@ -3223,9 +3223,14 @@ rb_str_aref(VALUE str, VALUE indx) * Element Reference --- If passed a single +index+, returns a substring of * one character at that index. If passed a +start+ index and a +length+, * returns a substring containing +length+ characters starting at the - * +index+. If passed a range, its beginning and end are interpreted as - * offsets delimiting the substring to be returned. In these three cases, if - * an index is negative, it is counted from the end of the string. + * +index+. If passed a +range+, its beginning and end are interpreted as + * offsets delimiting the substring to be returned. + * + * In these three cases, if an index is negative, it is counted from the end + * of the string. For the +start+ and +range+ cases the starting index + * is just before a character and an index matching the string's size. + * Additionally, an empty string is returned when the starting index for a + * character range is at the end of the string. * * Returns +nil+ if the initial index falls outside the string or the length * is negative.