Commit graph

261 commits

Author SHA1 Message Date
naruse
82ff894c04 Fix style for ruby-mode.el.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-13 00:27:41 +00:00
naruse
769f5fc41c Clean warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-12 21:04:35 +00:00
naruse
09fb7189ec * string.c (tr_setup_table): optimized. don't create hash objects
when given pattern is ASCII only.

* string.c (tr_find): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-01 07:52:16 +00:00
naruse
d074ef4d60 * string.c (tr_setup_table): fix bug in r29146.
Initialize table even if cflag is 0; tr_find see whether
  del is empty or not.

* string.c (tr_find): nodel can't be NULL; if NULL, it means
  it is not specified.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-30 19:45:30 +00:00
naruse
1a02ec9170 * string.c (tr_setup_table): initialize negating table when
negating string is given. [ruby-core:31851]

* string.c (tr_find): add a sentence for the time when
  target characters include negating one.

* string.c (rb_str_count): move definition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-30 06:01:14 +00:00
shyouhei
cff3c3d52a * string.c (rb_str_prepend): new method by Sora Harakami
[Feature #3765]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-27 07:33:19 +00:00
nobu
fabba1b93b * test/ruby/test_{string,symbol}.rb (test_ascii_incomat_inspect):
ASCII range characters are no longer escaped.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-02 14:06:25 +00:00
nobu
2138c773cc * string.c (rb_str_inspect): escape ASCII-compatible strings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-28 09:37:06 +00:00
naruse
548932ce97 Remove hexadecimal-floating-point tests for String#to_f.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 08:43:56 +00:00
naruse
4d399f12d4 * object.c (rb_cstr_to_dbl): return 0.0 if hexadecimal and
baccheck is FALSE: Float("0x1p+0") works, but "0x1p+0".to_f
  doesn't. [ruby-dev:40650]

* util.c (ruby_strtod): allow hexdecimal integers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 04:32:43 +00:00
akr
4f74adc503 add test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-18 23:11:12 +00:00
naruse
9eb68d7c44 * util.c (ruby_strtod): Add support for Hexadecimal
floating-point expression [ruby-dev:40650] #2969

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-17 16:21:45 +00:00
nobu
f3f43cdbee * array.c (rb_ary_push_m, rb_ary_unshift_m, rb_ary_aset),
(rb_ary_insert, rb_ary_replace, rb_ary_concat),
  (rb_ary_uniq_bang, rb_ary_flatten_bang): check if frozen after
  wrong number of arguments but before TypeError.
  [ruby-core:28140]

* hash.c (rb_hash_replace): ditto.

* string.c (rb_str_replace): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-10 07:31:06 +00:00
nobu
441dbecf43 * string.c (rb_str_concat): fixed range check for Fixnum, and
added checks for integer overflow and invalid char code.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-14 03:50:39 +00:00
nobu
c9c095fc7b * string.c (rb_str_justify): fixed the case a fill size is a
multiple of the length of the padding.  [ruby-dev:39856]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-09 00:50:37 +00:00
naruse
a1fc9cd582 * string.c (rb_str_upto): make next object before yield its block.
fix: can modify original begin string of String#upto.
  [ruby-dev:26384] [ruby-dev:39626] #2327

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-03 15:16:55 +00:00
nobu
35b88be02b * vm_eval.c (rb_search_method_emtry, rb_method_call_status): split
from rb_call0().

* vm_eval.c (rb_check_funcall): get rid of raising exceptions and
  hiding further exceptions.  [ruby-dev:39584]

* vm_eval.c (rb_funcall_no_recursive): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-30 07:42:04 +00:00
nobu
1b541acd69 * string.c (rb_str_upto): keep first width. [ruby-dev:39361]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 04:14:23 +00:00
naruse
a8154060ab Use rb_isspace for ASCII-incompatible strings.
* string.c (rb_str_split_m): use rb_isspace when the string
  may be ASCII-incompatible.
  (rb_str_lstrip_bang): ditto.
  (rb_str_rstrip_bang): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-15 05:27:29 +00:00
matz
5860ba548e * string.c (rb_str_lstrip_bang): use ascii_isspace(). [ruby-dev:39322]
* string.c (rb_str_rstrip_bang): ditto.

* string.c (rb_str_split_m): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-14 18:10:00 +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
nobu
d629684bb9 * string.c (rb_str_rpartition): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-24 23:06:57 +00:00
nobu
7a938f98f9 * string.c (rb_str_partition): should use the converted result. a
patch from Marc-Andre Lafortune at [ruby-core:23540].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-24 22:50:11 +00:00
nobu
6387c5dc8c * string.c (rb_str_rstrip_bang): should not sign-expand non-ascii.
[ruby-core:23158]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-08 11:08:18 +00:00
nobu
c9ad044dfb * test/ruby/test_string.rb (test_chop, test_chop!): tests for [ruby-core:23155].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-08 10:48:52 +00:00
nobu
287a34ae0d * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
nobu
6dd9388545 * string.c (rb_str_chomp_bang): coderange may change.
[ruby-core:22414]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 17:28:56 +00:00
nobu
42eeb2c1b1 * string.c (rb_str_delete_bang): should recalculate coderange.
[ruby-talk:329267]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 17:17:35 +00:00
nobu
624d07b0e4 * string.c (tr_trans): should recalculate coderange.
[ruby-core:22326] (reopened at [ruby-core:22328])


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 13:42:22 +00:00
nobu
7b1bbd59e1 * test/ruby/test_string.rb (test_tr): test for [ruby-core:22328].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 13:38:24 +00:00
nobu
bc59123dc0 * string.c (tr_trans): should not be affected by the encoding of
replacement unless actually modified.  [ruby-talk:328967]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 05:33:07 +00:00
mame
0863013b96 * test/ruby/test_string.rb: add some tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-02 17:26:31 +00:00
shugo
f433d710d0 * object.c (rb_obj_untrusted): new method Object#untrusted?.
(rb_obj_untrust): new method Object#untrust.
  (rb_obj_trust): new method Object#trust.
* array.c, debug.c, time.c, include/ruby/ruby.h, re.c, variable.c,
  string.c, io.c, dir.c, vm_method.c, struct.c, class.c, hash.c,
  ruby.c, marshal.c: fixes for Object#untrusted?.
* test/ruby/test_module.rb, test/ruby/test_array.rb,
  test/ruby/test_object.rb, test/ruby/test_string.rb,
  test/ruby/test_marshal.rb, test/ruby/test_hash.rb: added tests for
  Object#untrusted?.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-13 07:25:05 +00:00
mame
eafe85f603 * test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err): new
method.

* test/ruby/test_argf.rb: use assert_in_out_err instead of
  EnvUtil.rubyexec.

* test/ruby/test_module.rb: ditto.

* test/ruby/test_require.rb: ditto.

* test/ruby/test_objectspace.rb: ditto.

* test/ruby/test_object.rb: ditto.

* test/ruby/test_string.rb: ditto.

* test/ruby/test_method.rb: ditto.

* test/ruby/test_variable.rb: ditto.

* test/ruby/test_io.rb: ditto.

* test/ruby/test_rubyoptions.rb: ditto.

* test/ruby/test_exception.rb: ditto.

* test/ruby/test_class.rb: ditto.

* test/ruby/test_thread.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-15 15:26:04 +00:00
nobu
6e0b5f40cc * string.c (rb_str_succ): alphabets or numerics mutually enclosing
non-alphanumeric characters can carry up.  e.g., "1.999".succ should
  be "2.000".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-08 16:38:40 +00:00
nobu
f10c88827e * string.c (rb_str_succ): limit carrying in an alphanumeric region if
exists.  [ruby-dev:35094]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-07 15:23:01 +00:00
akr
04739ba617 * string.c (rb_memhash): randomize hash to avoid algorithmic
complexity attacks.
  (rb_str_hash): use rb_memhash.

* include/ruby/intern.h (rb_reset_random_seed): declared.

* thread.c (rb_thread_atfork): call rb_reset_random_seed.

* inits.c (rb_call_inits): call Init_RandomSeed at first.

* random.c (seed_initialized): defined.
  (fill_random_seed): extracted from random_seed.
  (make_seed_value): extracted from random_seed.
  (rb_f_rand): initialize random seed at first.
  (initial_seed): defined.
  (Init_RandomSeed): defined.
  (Init_RandomSeed2): defined.
  (rb_reset_random_seed): defined.
  (Init_Random): call Init_RandomSeed2.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-20 02:46:17 +00:00
mame
5e6fc71d96 * test/ruby/test_argf.rb: rename a conflicting method name.
* test/ruby/test_string.rb: ditto.

* test/ruby/test_io.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-30 13:18:17 +00:00
akr
e3562616ad add a test for [ruby-dev:34828].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-24 01:48:21 +00:00
ko1
39fcd1cdf2 * bootstraptest/test_knownbug.rb: move solved tests.
* bootstraptest/test_eval.rb, test_literal.rb, test_syntax.rb,
  test_thread.rb: ditto.
* test/ruby/test_m17n.rb, test_proc.rb, test_sprintf.rb,
  test_string.rb, test/ruby/test_struct.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-19 05:20:21 +00:00
mame
b8118e9645 * test/ruby/test_string.rb: add tests to achieve over 90% test
coverage of string.c.

* test/ruby/test_m17n.rb: ditto.

* test/ruby/test_symbol.rb: ditto.

* test/ruby/test_pack.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-15 14:37:18 +00:00
akr
f587eab23c * eval.c (rb_obj_respond_to): check the result of respond_to? method
by RTEST.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-04 05:30:08 +00:00
nobu
2188bbced3 * bignum.c (rb_cstr_to_inum): treat successive underscores as
nondigit.  [ruby-dev:34089]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 05:36:43 +00:00
matz
840723e523 test/test_{string,sprintf}.rb: updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-01 01:22:45 +00:00
matz
2d97d3ddac * string.c (rb_str_chomp_bang): now works on UTF-16.
* string.c (tr_setup_table): negation should work on non ASCII
  compatible strings as well.

* string.c (rb_str_split_m): awk split should work on non ASCII
  compatible strings as well.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-29 13:33:26 +00:00
akr
e61e1f6234 add tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-18 06:18:14 +00:00
akr
d77ddf33ae add tests for sub/gsub with hash.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-18 03:51:34 +00:00
akr
35cb0f807b * string.c (rb_str_times): reduce loop overhead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-17 00:18:16 +00:00
akr
fe068da879 add a test for String#end_with?.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-23 18:14:28 +00:00
akr
fc5a26c2d4 * string.c (rb_str_buf_append): fix append itself.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-07 22:57:00 +00:00