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.