knu
a412a7e00d
Merge from ruby_1_8.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-24 20:21:59 +00:00
knu
280f8df370
Merge from ruby_1_8.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-22 16:07:42 +00:00
knu
ab3d450a54
Merge from ruby_1_8.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-22 03:31:43 +00:00
knu
8480bcc8d5
Merge -r16241:16456 from ruby_1_8.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-18 15:02:36 +00:00
knu
74efef0be8
Merge from ruby_1_8.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-25 06:51:21 +00:00
knu
09f5560c57
Merge everything from ruby_1_8.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-19 11:45:39 +00:00
nobu
4ef650d064
* array.c (rb_ary_take_while, rb_ary_drop_while): removed unused
...
variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-15 04:29:48 +00:00
knu
f2dc726691
* array.c (rb_ary_flatten, rb_ary_flatten_bang): Take an optional
...
argument that determines the level of recursion to flatten;
backported from 1.9.
* array.c (rb_ary_shuffle_bang, rb_ary_shuffle, rb_ary_choice,
rb_ary_cycle, rb_ary_permutation, rb_ary_combination,
rb_ary_product, rb_ary_take, rb_ary_take_while, rb_ary_drop,
rb_ary_drop_while): New methods: Array#shuffle, #shuffle!,
#choice, #cycle, #permutation, #combination, #product, #take,
#take_while, #drop, #drop_while; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 11:03:42 +00:00
knu
125d830eb8
* array.c (rb_ary_collect_bang, rb_ary_select): Return an
...
enumerator if no block is given.
* dir.c (dir_each, dir_foreach): Return an enumerator if no block
is given.
* enum.c (enum_partition, enum_sort_by): Ditto.
* gc.c (os_each_obj): Ditto.
* hash.c (rb_hash_delete_if, rb_hash_reject_bang, rb_hash_select,
rb_hash_each_value, rb_hash_each_key, rb_hash_each_pair,
env_each_key, env_each_value, env_each, env_each_pair,
env_reject_bang, env_delete_if, env_select): Ditto.
* numeric.c (num_step, int_upto, int_downto, int_dotimes): Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 08:57:23 +00:00
knu
8ca8703de2
* enum.c (enum_count, enum_find_index): New methods:
...
Enumerable#count and #find_index; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 07:04:30 +00:00
knu
8202fc3bc3
* array.c (rb_ary_first, rb_ary_last): Return a shared array when
...
possible.
* array.c (rb_ary_pop, rb_ary_pop_m, rb_ary_shift, rb_ary_shift_m):
Array#pop and Array#shift can take an optional argument
specifying the number of elements to remove and return;
backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-10 10:36:10 +00:00
knu
99a6e8a3ed
Fix a typo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-09 12:56:36 +00:00
knu
357f65d592
* array.c (rb_ary_pop): Do not reallocate too often; backported
...
from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-09 12:56:02 +00:00
knu
0c0881d517
Array#reject too.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-09 12:34:35 +00:00
knu
343069e16a
* array.c (rb_ary_each, rb_ary_each_index, rb_ary_reverse_each,
...
rb_ary_reject_bang): Calling Array#each, #each_index,
#reverse_each, #reject! or #delete_if without a block now
returns an enumerator; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-09 12:21:25 +00:00
knu
c5827ca193
* array.c (rb_ary_index, rb_ary_index): Array#index and #rindex
...
take a block instead of an argument; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-09 11:53:15 +00:00
knu
86d05f81fd
* array.c (rb_ary_nitems): Backport Array#nitems with a block;
...
suggested by Bertram Scharpf <lists@bertram-scharpf.de> in
[ruby-talk:134083].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-07 12:40:45 +00:00
knu
b0388e77e3
* array.c (rb_ary_slice_bang): If an invalid negative index (<=
...
-size) is given, do not raise an exception but return nil just
like slice() does.
* test/ruby/test_array.rb (TestArray::test_slice,
TestArray::test_slice!): Pull in test cases from trunk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-10 15:08:31 +00:00
matz
35c9feaeb7
* array.c (rb_ary_assoc): check and convert inner arrays (assocs)
...
using #to_ary.
* hash.c (rb_hash_s_create): check and convert argument hash
using #to_hash.
* hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of
hash conversion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-02 06:30:26 +00:00
matz
d84ece5c1c
* array.c (rb_ary_subseq): need integer overflow check.
...
[ruby-dev:31736]
* array.c (rb_ary_splice): ditto. [ruby-dev:31737]
* array.c (rb_ary_fill): ditto. [ruby-dev:31738]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-05 13:36:28 +00:00
matz
6ed97e9294
* array.c (rb_ary_fill): need integer overflow check.
...
[ruby-dev:31738]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-05 13:27:52 +00:00
matz
336722930a
* array.c (rb_ary_initialize): should call rb_ary_modify() first.
...
[ruby-core:11562]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-30 07:10:43 +00:00
matz
7313b14021
* array.c (rb_ary_first): add negative length check.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-18 14:18:02 +00:00
matz
642273c070
* array.c (rb_ary_first): call rb_ary_subseq() instead of pushing
...
values by itself. [ruby-talk:252062]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-18 14:10:29 +00:00
nobu
aaf1dc156e
* array.c (rb_ary_shift): shorten copy size. fixed: [ruby-list:42907]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-18 13:57:43 +00:00
matz
3c774662e1
* array.c (rb_ary_shift): should not move memory region if array
...
body is shared. a patch from Kent Sibilev <ksruby at gmail.com>.
[ruby-core:08922]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-01 14:45:38 +00:00
matz
c451d96fe6
* array.c (rb_ary_shift): should clear shifting top element.
...
[ruby-talk:216055]
* array.c (rb_ary_shift): avoid creating shared object if array
size is small.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-24 23:17:42 +00:00
akr
ceb64ff9fc
comment rb_ary_new4 behavior in Ruby 1.9.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-24 14:53:36 +00:00
matz
704fbef5b6
* ext/syck/emitter.c (syck_scan_scalar): avoid accessing
...
uninitialized array element. a patch from Pat Eyler
<rubypate at gmail.com>. [ruby-core:07809]
* array.c (rb_ary_fill): initialize local variables first. a
patch from Pat Eyler <rubypate at gmail.com>. [ruby-core:07810]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-03 17:29:36 +00:00
matz
8520eae480
* array.c (rb_ary_fill): internalize local variable "beg" to
...
pacify Coverity. [ruby-core:07770]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-26 16:52:54 +00:00
matz
2be9ea9ce1
* array.c: document fix - remove reference of obsoleted
...
select usage.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-22 07:08:51 +00:00
akr
205f93b567
* array.c (rb_ary_diff): fix a GC problem on IA64 with
...
gcc 3.3.5 (Debian 1:3.3.5-13).
When rb_ary_push is called, there was no register which contains
`hash' but `&RHASH(hash)->tbl' instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12 16:47:17 +00:00
ocean
e23aa93e5b
* array.c (rb_ary_fill): previous commit disabled this usage:
...
a = [0,1,2,3,4,5,6,7,8,9]
a.fill {|i| a[i] * 10} #=> [nil, nil, ...., nil]
previous commit has advantange for early garbage collection, but
potensially would break some script. so I reverted behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-15 07:38:38 +00:00
ocean
518851f88d
* array.c (rb_ary_fill): tail elements were vanished when the middle
...
part of array was filled. (ie: [0,1,2,3,4].fill(-1,2,1) => [0,1,-1])
* test/ruby/test_array.rb (test_fill): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-15 07:06:00 +00:00
matz
18f7059688
* array.c (rb_ary_fill): should adjust array length correctly when
...
an array is expanded in the fill process. [ruby-core:06625]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-15 05:42:36 +00:00
matz
f8c1ca18c9
* array.c (rb_ary_first): RDoc update from Daniel Berger
...
<djberg96@yahoo.com>. [ruby-core:06577].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-14 08:39:34 +00:00
nobu
c79ef69302
* array.c (sort_2): get rid of yet another bcc's bug.
...
fixed: [ruby-core:05152]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-05 14:23:38 +00:00
ocean
387c713786
* array.c (rb_ary_select): can remove argc check. [ruby-core:4911]
...
(patch from Daniel Berger)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-13 03:38:18 +00:00
matz
88d5dcc8de
* exception error messages updated. [ruby-core:04497]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-28 02:45:23 +00:00
matz
3d4376d167
* array.c (rb_ary_s_create): no need for negative argc check.
...
[ruby-core:04463]
* array.c (rb_ary_unshift_m): ditto.
* lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass
of StandardError class, not Exception class. [ruby-core:04429]
* lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.
fixed: [ruby-core:04444]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-23 13:52:19 +00:00
matz
db8a49614f
* process.c (proc_getpgrp): prohibit for $SAFE=2.
...
[ruby-dev:24899]
* process.c (get_pid): ditto. [ruby-dev:24904]
* process.c (get_ppid): ditto.
* array.c (rb_ary_delete): defer rb_ary_modify() until actual
modification. [ruby-dev:24901]
* parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]
* parse.y (string_content): should not use FL_UNSET.
* node.h (NODE_NEWLINE): remove unused bit to utilize flag field
in nodes.
* string.c (rb_str_splice): move rb_str_modify() after
StringValue(), which may alter the receiver. [ruby-dev:24878]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-18 03:47:14 +00:00
matz
73deb73392
* numeric.c (flo_divmod): protect float values from GC by
...
assignment to local variables. [ruby-dev:24873]
* string.c (str_mod_check): frozen check should be separated.
[ruby-core:3742]
* array.c (rb_ary_update): pedantic check to detect
rb_ary_to_ary() to modify the receiver. [ruby-dev:24861]
* string.c (rb_str_justify): typo fixed. [ruby-dev:24851]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-16 14:54:49 +00:00
matz
d55db6b999
* gc.c (gc_mark): enable GC stack checking.
...
* string.c (str_gsub): lock strings temporarily. [ruby-dev:24687]
* ext/socket/socket.c (s_recvfrom): tmplock input buffer.
[ruby-dev:24705]
* array.c (rb_ary_uniq_bang): do not push frozen string from hash
table. [ruby-dev:24695]
* array.c (rb_ary_and): ditto.
* array.c (rb_ary_or): ditto.
* ext/enumerator/enumerator.c (each_cons_i): pass copy of an
internal consequent array. [ruby-talk:118691]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-04 01:20:51 +00:00
matz
c2a9b62fd2
* string.c (rb_str_locktmp): lock string temporarily.
...
* string.c (str_independent): add tmplock check.
* io.c (io_write): lock output string temporarily.
[ruby-dev:24649]
* io.c (io_write): use rb_str_locktmp().
* io.c (read_all): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-30 15:33:03 +00:00
matz
2ec51ee0d5
* string.c (str_gsub): reentrant check. [ruby-dev:24432]
...
* backport all SEGV bug fixes from CVS HEAD. [ruby-dev:24536]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-20 12:47:20 +00:00
matz
46c777ac14
* pack.c (pack_unpack): string conversion should at the top of the
...
method. [ruby-dev:24439]
* io.c (io_read): buffer should be frozen only after the length
check. [ruby-dev:24440]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-07 04:06:41 +00:00
matz
6f9dcadf6e
* string.c (rb_str_sum): check was done with false pointer.
...
[ruby-dev:24383]
* string.c (rb_str_sum): string may be altered. [ruby-dev:24381]
* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
sourcefile string modification. [ruby-dev:24373]
* io.c (io_read): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24366]
* io.c (rb_io_s_popen): mode argument may be altered.
[ruby-dev:24375]
* file.c (rb_file_s_basename): ext argument may be altered.
[ruby-dev:24377]
* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
[ruby-dev:24378]
* string.c (rb_str_chomp_bang): StringValue() may change the
receiver. [ruby-dev:24371]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-02 03:50:53 +00:00
matz
9dcc08646f
* hash.c (rb_hash_rehash): add iteration check. [ruby-dev:24301]
...
* st.c (st_foreach): add deep check.
* array.c (rb_ary_collect_bang): element size might change during
comparison. [ruby-dev:24300]
* array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]
* array.c (rb_ary_eql): ditto. [ruby-dev:24300]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-22 04:47:37 +00:00
matz
5f2ecbb345
* array.c (rb_ary_equal): merge miss.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 10:36:50 +00:00
matz
ba19ba779c
* array.c (rb_ary_uniq_bang): element size might change during
...
comparison. [ruby-dev:24298]
* enum.c (enum_sort_by): do not use qsort directly. use
rb_ary_sort_bang() instead. [ruby-dev:24291]
* enum.c (enum_sort_by): pedantic type check added.
[ruby-dev:24291]
* hash.c (rb_hash_foreach_iter): check iter_lev after each
iteration. [ruby-dev:24289]
* array.c (rb_ary_and): element size might change during
comparison. [ruby-dev:24290]
* array.c (rb_ary_or): ditto. [ruby-dev:24292]
* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 09:35:29 +00:00