diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-24 09:48:21 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-24 09:48:21 +0000 |
| commit | 42f0ec97691b4963e61159782ac2af877c8a23b4 (patch) | |
| tree | 26d71325d8b61fd763b11eb23bec0b30c8004c24 | |
| parent | d1f820b557421dec4a1523ff755fd59567d77c46 (diff) | |
| download | ruby-42f0ec97691b4963e61159782ac2af877c8a23b4.tar.gz ruby-42f0ec97691b4963e61159782ac2af877c8a23b4.tar.xz ruby-42f0ec97691b4963e61159782ac2af877c8a23b4.zip | |
* range.c (rb_range_beg_len): returns Qnil only when "beg" points
outside of a range. No boundary check for "end".
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@6692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | array.c | 6 | ||||
| -rw-r--r-- | lib/ping.rb | 2 | ||||
| -rw-r--r-- | range.c | 6 | ||||
| -rw-r--r-- | string.c | 3 |
5 files changed, 12 insertions, 10 deletions
@@ -1,3 +1,8 @@ +Sat Jul 24 13:32:47 2004 Yukihiro Matsumoto <matz@ruby-lang.org> + + * range.c (rb_range_beg_len): returns Qnil only when "beg" points + outside of a range. No boundary check for "end". + Fri Jul 23 16:40:25 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * gc.c (define_final): should not disclose NODE* to Ruby world. @@ -620,10 +620,8 @@ rb_ary_subseq(ary, beg, len) * continuing for _length_ elements, or returns a subarray * specified by _range_. * Negative indices count backward from the end of the - * array (-1 is the last element). Returns nil if any indices - * are out of range unless the index equals the array size and a - * _length_ or _range_ parameter is given, in which case an - * empty array is returned. + * array (-1 is the last element). Returns nil if the index + * (or starting index) are out of range. * * a = [ "a", "b", "c", "d", "e" ] * a[2] + a[0] + a[1] #=> "cab" diff --git a/lib/ping.rb b/lib/ping.rb index d90551e67..7f970f96d 100644 --- a/lib/ping.rb +++ b/lib/ping.rb @@ -49,7 +49,7 @@ module Ping end rescue Errno::ECONNREFUSED return true - rescue + rescue Timeout::Error return false end return true @@ -480,14 +480,12 @@ rb_range_beg_len(range, begp, lenp, len, err) } if (err == 0 || err == 2) { if (beg > len) goto out_of_range; - if (end > len) - end = len; + if (end > len) end = len; } if (end < 0) end += len; if (!EXCL(range)) end++; /* include end point */ - if (end < 0) goto out_of_range; len = end - beg; - if (len < 0) goto out_of_range; + if (len < 0) len = 0; *begp = beg; *lenp = len; @@ -1543,7 +1543,8 @@ rb_str_aref(str, indx) * a[1..3] #=> "ell" * a[-3,2] #=> "er" * a[-4..-2] #=> "her" - * a[-2..-4] #=> nil + * a[12..-1] #=> nil + * a[-2..-4] #=> "" * a[/[aeiou](.)\1/] #=> "ell" * a[/[aeiou](.)\1/, 0] #=> "ell" * a[/[aeiou](.)\1/, 1] #=> "l" |
