aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--array.c13
-rw-r--r--string.c11
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 <drbrain@segment7.net>
+
+ * 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 <drbrain@segment7.net>
* 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.