Commit graph

5576 commits

Author SHA1 Message Date
nobu
9676023607 * random.c (random_rand): unified random_int and random_float.
[ruby-dev:39158].  and fixes [ruby-core:24655], [ruby-core:24677],
  [ruby-core:24679].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-26 10:20:30 +00:00
nobu
47a1a7b67d * test/test_tempfile.rb: merged from Hongli Lai's fork.
cf [ruby-core:25131].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-26 10:00:03 +00:00
kou
b0947c5e04 * lib/rss/maker/base.rb, test/rss/test_maker_2.0.rb: fix a bug
that RSS Maker doesn't accept 'false' as guid's isPermaLink.
  Reported by Joe Holt. Thanks!!!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-24 12:31:22 +00:00
akr
461bd62fec * enumerator.c (ary2sv): add dup argument.
(enumerator_next): call ary2sv with dup=0.
  (enumerator_peek): call ary2sv with dup=1 to return duplicated array.
  (enumerator_peek_values_m): new function to return duplicated array.
  (Init_Enumerator): use enumerator_peek_values_m as
  Enumerator#peek_value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-21 15:51:35 +00:00
naruse
f7207fa2fc Change modestr syntax for BOM to "BOM|UTF-*".
* io .c (rb_io_fmode_modestr): change modestr syntax for BOM
  to "BOM|UTF-*".

* io.c (parse_mode_enc): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-21 06:16:53 +00:00
akr
0c0f754400 * enumerator.c (next_init): don't clear feedvalue.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-19 17:32:56 +00:00
akr
3b4949ffa8 * enumerator.c: implement Enumerator#{next_values,peek_values,feed}
and StopIteration#result.  [ruby-dev:39109]
  (struct enumerator): replace no_next by stop_exc.
  new field feedvalue.
  (enumerator_mark): mark feedvalue and stop_exc.
  (enumerator_init): initialize feedvalue and stop_exc.
  (enumerator_init_copy): initialize feedvalue.
  (next_ii): send yield arguments as an array.  return feedvalue.
  (next_i): generate StopIteration exception here.  set result.
  (next_init): initialize feedvalue.
  (enumerator_next_values): new method Enumerator#next_values.
  (ary2sv): new function.
  (enumerator_peek_values): new method Enumerator#peek_values.
  (enumerator_feed): new method Enumerator#feed.
  (yielder_yield): return the yield value.
  (generator_each): return the iterator value.
  (stop_result): new method StopIteration#result.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-19 16:36:00 +00:00
mame
43d0c7263b * test/ruby/test_settracefunc.rb (test_return, test_return2): add two
tests for [ruby-dev:38701] and [ruby-core:24463].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-18 17:55:26 +00:00
akr
2772c80ce0 * enumerator.c (enumerator_peek): new method Enumerator#peek.
(enumerator_next): don't rewind at end.
  [ruby-dev:38932]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-18 12:02:53 +00:00
takano32
7e41da2cdf Tue Aug 18 13:46:14 2009 TAKANO Mitsuhiro (takano32) <tak@no32.tk>
* touch test/rdoc/empty.dat to run test_rdoc_parser.rb



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-18 04:52:41 +00:00
wanabe
38a22404db * vm_insnhelper.c (vm_call_cfunc): ensure hook c-return.
[Bug #1588]

* test/ruby/test_settracefunc.rb (TestSetTraceFunc#test_raise):
  follow above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-18 02:44:10 +00:00
matz
95e77269a9 * range.c (range_step): treat symbols specially so that iterating
over symbols should work like strings.  [ruby-core:24780]

* range.c (range_each): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-17 17:00:47 +00:00
matz
554786aedc * range.c (range_each): should honor to_str conversion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-17 16:41:00 +00:00
nobu
b5e6b46e90 * parse.y (lex_get_str, lex_io_gets, rb_parser_compile_string):
must be ascii compatible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-17 05:35:10 +00:00
tadf
cfed2cefb2 * lib/date/format.rb (strptime): removed \v; since \s includes \v.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-16 23:22:13 +00:00
tadf
df21038777 * complex.c (nucomp_rationalize) added. [experimental]
* rational.c ({nurat,nilclass,integer,float}_rationalize) ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-16 23:17:14 +00:00
matz
b21088b431 * string.c (rb_str_upto): generate numerical sequence when
characters in both edges are all digits.  [ruby-talk:343186]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-16 22:43:48 +00:00
nobu
114f01bd9d * parse.y (yylex): should dispatch scan-event even when follows
just after delayed-token.  [ruby-dev:37855] [Bug #1071]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-16 14:58:27 +00:00
naruse
066b30245b rescue Encoding::ConverterNotFoundError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-16 06:31:31 +00:00
naruse
c0ec326b7b * regparse.c (add_ctype_to_cc_by_range): fix the first
character bigger than sb_out was dropped.

* test/ruby/test_regexp.rb (TestRegexp#test_posix_bracket):
  add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-15 16:27:13 +00:00
naruse
249697855e \d, \s and \w are now non Unicode class. [ruby-dev:39026]
* include/ruby/oniguruma.h
  (ONIGENC_CTYPE_SPECIAL_MASK): added.
  (ONIGENC_CTYPE_D): ditto.
  (ONIGENC_CTYPE_S): ditto.
  (ONIGENC_CTYPE_W): ditto.

* regparse.c: \d, \s and \w are now non Unicode class.
  [ruby-dev:39026]
  (fetch_token_in_cc): use ONIGENC_CTYPE_[DSW] for \d/\s/\w.
  (fetch_token): ditto.
  (add_ctype_to_cc): add routines for ONIGENC_CTYPE_[DSW].
  (parse_exp): ditto.

* test/ruby/test_regexp.rb (TestRegexp#test_char_class):
  add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-15 16:01:33 +00:00
naruse
4155811dc1 * re.c (rb_reg_preprocess_dregexp): change Exception class to
RegexpError.

* test/ruby/test_m17n.rb (test_regexp_usascii): follow above.

* test/ruby/test_m17n.rb (test_regexp_embed): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-14 09:05:44 +00:00
nobu
be245c09e6 * test/ruby/test_marshal.rb (test_class_nonascii): test for non-ascii name class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 06:34:59 +00:00
nobu
31f4a82942 * class.c (rb_define_class_id_under, rb_define_module_id_under):
new functions to define a nested class/module with non-ascii
  name.

* struct.c (make_struct): use name with encoding.

* struct.c (inspect_struct): ditto.  [ruby-core:24849]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 06:32:21 +00:00
nobu
c00428ed9e * test/ruby/test_struct.rb (test_inspect): use assert_match.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 06:15:30 +00:00
nobu
265bd9e661 * string.c (rb_str_new_frozen): must not change encoding of frozen
shared string.  [ruby-dev:39068]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 04:00:03 +00:00
naruse
e666111955 * encoding.c (rb_enc_compatible): If a string is empty and
other's encoding is US-ASCII, returns the empty string's encoding.
  [ruby-list:46274]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-11 22:52:39 +00:00
nobu
d26cfd565d * test/ruby/test_rubyoptions.rb (test_shebang): fix for new behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-11 15:06:51 +00:00
tadf
8e6a754b5d * lib/date.rb (complete_frags): Monday must be suitable for %W's
default day.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-11 14:14:41 +00:00
naruse
e56bf07b16 New API Encoding#ascii_compatible?.
* encoding.c (enc_ascii_compatible_p): added. [ruby-core:24793]
  (Init_Encoding): New API Encoding#ascii_compatible?.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-08 23:25:32 +00:00
nobu
ac2557e09f * marshal.c (w_symbol r_symlink, r_symbol, r_object0): fix for
non-ascii symbols.  loading such symbols can cause segfaults in
  older versions.  [ruby-core:24788]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-07 21:18:33 +00:00
nobu
f86f669cf3 * test/mkmf/base.rb (TestMkmf): was turned into a class, because
MiniUnit doesn't complain even if a testcase has no tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-06 04:30:15 +00:00
nobu
a032b1bdb8 * test/mkmf/base.rb: split from test_sizeof.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-06 04:14:50 +00:00
nobu
c6ada1e7e0 * lib/mkmf.rb (check_sizeof): added optional compiler option
argument.  [ruby-core:24785]

* lib/mkmf.rb (create_makefile): suppressed shadowing outer local
  variable warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-06 04:00:38 +00:00
nobu
8bc6c71547 * ruby.c (load_file_internal): assumes -x flag if no "ruby" is in
the shebang line.  [ruby-dev:39015]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-05 10:19:18 +00:00
matz
da19797648 * range.c (range_eql, range_eq): fixed equality to work for
subclasses of Range.  a patch from Marc-Andre Lafortune.
   [ruby-core:22190]

* test/ruby/test_range.rb: add assertions for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-05 05:01:12 +00:00
naruse
d857a1b0d7 Fix test for previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-05 01:40:15 +00:00
mame
528574c2e2 * lib/pp.rb (guard_inspect_key): untrust internal hash to prevent
unexpected SecurityError.

* test/ruby/test_object.rb: add a test for [ruby-dev:38982].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-04 16:44:05 +00:00
nobu
a194550e5c * random.c (rb_random_int): arguments have to be converted to
integer.  [ruby-core:24679]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-02 15:32:04 +00:00
mame
dfd3d1fb29 * test/ruby/test_rand.rb: add tests for Random#float's rejection
against Infinity and NaN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-02 08:40:52 +00:00
nobu
e626e0bdec * random.c (rand_int): prevent from GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-02 05:20:51 +00:00
mame
22acf29509 * test/ruby/test_module.rb (test_ancestors, test_included_modules):
ignore rake mixins.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 15:57:06 +00:00
mame
045136d475 * test/ruby/test_rand.rb: add tests for Random class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 12:57:02 +00:00
duerst
5e85648b77 * transcode.c: added check for frozen string for encode! (see Bug #1836)
* test/ruby/test_transcode.rb: added tests for the above


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 09:40:06 +00:00
nobu
b8b083dbd5 * insns.def (defineclass): preserve encoding of class/module
names.  [ruby-core:24600]

* variable.c (rb_set_class_path_string): set class path with a
  string value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 07:45:42 +00:00
xibbar
8bc2fb5ba4 add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 07:39:09 +00:00
xibbar
1976ef38a7 * lib/cgi/util.rb (CGI::unescape): support encoding option.
* lib/cgi/cookie.rb (CGI::Cookie.parse): fix for the encoded value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 05:34:02 +00:00
ko1
9050b61dcb * proc.c (rb_method_entry_arity): support optimized method (send).
* test/ruby/test_method.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-28 10:41:11 +00:00
nobu
1ac307dddc * lib/rdoc/parser.rb (RDoc::Parser.binary?): fix for empty files.
[ruby-dev:38848]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-27 01:25:01 +00:00
nobu
b7f26835da * io.c (argf_eof): go to the next file if called after ARGF.close
or ARGF.skip.  [ruby-core:24561]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-26 10:17:39 +00:00