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
akr
7425f59f10
* string.c (STR_ENC_GET): defined. same as rb_enc_get without
...
enc_capable.
(coderange_scan): ASCII-8BIT test refined.
(rb_enc_cr_str_buf_cat): new internal function to accumulate
strings with encoding.
(rb_enc_str_buf_cat): use rb_enc_cr_str_buf_cat.
(rb_str_buf_append): ditto
(str_gsub): use rb_str_buf_append.
(rb_str_hash): use ENCODING_GET.
(rb_str_comparable): ditto.
(rb_str_cmp): compare encoding index, not rb_encoding address.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-07 16:28:43 +00:00
matz
f2707db2dc
* string.c (Init_String): sym_match arity spec was wrong. a patch
...
from Hiroyuki Iwatsuki <don at na.rim.or.jp> in [ruby-dev:32957].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-07 10:12:45 +00:00
akr
3e2fe4a1eb
* string.c (str_gsub): move rb_enc_get(str) to out of loop.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-07 09:11:28 +00:00
akr
063beac343
* encoding.c (rb_enc_internal_get_index): extracted from
...
rb_enc_get_index.
(rb_enc_internal_set_index): extracted from rb_enc_associate_index
* include/ruby/encoding.h (ENCODING_SET): work over ENCODING_INLINE_MAX.
(ENCODING_GET): ditto.
(ENCODING_IS_ASCII8BIT): defined.
(ENCODING_CODERANGE_SET): defined.
* re.c (rb_reg_fixed_encoding_p): use ENCODING_IS_ASCII8BIT.
* string.c (rb_enc_str_buf_cat): use ENCODING_IS_ASCII8BIT.
* parse.y (reg_fragment_setenc_gen): use ENCODING_IS_ASCII8BIT.
* marshal.c (has_ivars): use ENCODING_IS_ASCII8BIT.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-07 02:49:01 +00:00
akr
9f808343c8
* string.c (coderange_scan): avoid rb_enc_to_index.
...
(rb_enc_str_buf_cat): ditto.
(str_cat_char): use rb_enc_str_buf_cat.
(rb_str_inspect): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 17:37:54 +00:00
akr
b2168c5a2a
* string.c (coderange_scan): optimize ASCII-8BIT string.
...
(rb_enc_str_buf_cat): don't call coderange_scan if possible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 16:38:04 +00:00
akr
6cdef2dc7e
* $Date$ keyword removed to avoid inclusion of locale dependent
...
string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
akr
8987b97ca9
* include/ruby/encoding.h (rb_enc_str_buf_cat): declared.
...
* string.c (coderange_scan): extracted from rb_enc_str_coderange.
(rb_enc_str_coderange): use coderange_scan.
(rb_str_shared_replace): copy encoding and coderange.
(rb_enc_str_buf_cat): new function for linear complexity string
accumulation with encoding.
(rb_str_sub_bang): don't conflict substituted part and replacement.
(str_gsub): use rb_enc_str_buf_cat.
(rb_str_clear): clear coderange.
* re.c (rb_reg_regsub): use rb_enc_str_buf_cat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 09:25:09 +00:00
nobu
76c2550b5b
* string.c (rb_str_resize): copy if old data is not empty
...
[ruby-core:14785]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-05 07:50:50 +00:00
nobu
80de7a2fe1
* string.c (rb_str_resize): copy at old length but not new length.
...
[ruby-core:14785]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-05 05:45:40 +00:00
akr
8702c4d0d7
update rdoc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-05 03:35:13 +00:00
matz
f3fa37e8e5
* string.c (trnext): should enable backslash escape.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-04 17:15:22 +00:00
matz
96e7713754
* string.c (rb_str_substr): offset movement bug. a patch from
...
Vincent Isambart <vincent.isambart at gmail.com> in
[ruby-core:14647]. [ruby-core:14644]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-01 05:16:49 +00:00
nobu
de3f2adb53
* string.c (rb_str_resize): embeds if ptr is null. [ruby-dev:32819]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-31 14:27:20 +00:00
akr
ca122fa53b
* string.c (IS_7BIT): removed.
...
(single_byte_optimizable): new function to test optimizationability
using single byte string.
(str_strlen): use single_byte_optimizable instead of
is_ascii_string.
(str_nth): rename argument: asc -> singlebyte.
(str_offset): ditto.
(rb_str_substr): use single_byte_optimizable instead of IS_7BIT.
(rb_str_index): ditto.
(rb_str_rindex): ditto.
(rb_str_splice): ditto.
(rb_str_justify): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-31 10:39:20 +00:00
akr
e21907e0f8
fix typos.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-31 05:52:59 +00:00
akr
486dd97e74
update force_encoding document.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-30 09:19:09 +00:00
nobu
5ee7f4b0b5
* re.c (rb_reg_regsub): returns the given string itself if nothing
...
changed.
* string.c (rb_str_sub_bang): keeps code-range as possible.
* string.c (str_gsub): adjusts code-range. [ruby-core:14566]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-29 13:44:32 +00:00
akr
ce2b982cd2
* encoding.c (rb_enc_codelen): show codepoint in error message.
...
* include/ruby/encoding.h (rb_enc_codelen): comment it returns
positive integer.
* string.c (rb_str_concat): rb_enc_codelen doesn't return 0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-27 06:27:39 +00:00
nobu
6aef04f338
* string.c (rb_str_casecmp): fixed using a wrong variable.
...
[ruby-list:44402]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-27 06:02:55 +00:00
nobu
c2d54ce2a0
* string.c (Init_String): defines chars method.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-26 07:10:20 +00:00
nobu
0ee5a49dd4
* encoding.h (rb_enc_mbc_to_codepoint): wrapper for
...
ONIGENC_MBC_TO_CODE().
* string.c (rb_str_succ): deal with invalid sequence as binary.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 10:01:06 +00:00
akr
0eb5c917e0
* string.c (rb_str_each_line): don't call rb_enc_codepoint with empty
...
string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 09:28:31 +00:00
akr
ead329fd8e
* string.c (rb_str_inspect): don't call rb_enc_codepoint with empty
...
string. fix '#'.inspect.
* encoding.c (rb_enc_codepoint): raise on empty string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 09:07:32 +00:00
nobu
f1fc4bbecb
* string.c (rb_str_succ): fix for string with non-alphanumeric chars.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 06:55:16 +00:00
matz
a04a812ed0
* include/ruby/encoding.h (rb_enc_left_char_head): new utility macro.
...
* include/ruby/encoding.h (rb_enc_right_char_head): ditto.
* io.c (appendline): does multibyte RS search in the function.
* io.c (prepare_getline_args): RS may be nil.
* io.c (rb_io_getc): should process character based on external
encoding, when transcoding required.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 16:36:14 +00:00
matz
37855698ff
* string.c (rb_str_comparable): fixed to keep transitivity.
...
[ruby-dev:32693]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 02:40:55 +00:00
matz
19cf57f21c
* string.c (tr_trans): should associate new encoding if modified.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-23 20:13:55 +00:00
matz
65a0050268
* string.c (str_new_shared): was setting embedding flag of wrong
...
string object. [ruby-dev:32685]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-23 18:58:09 +00:00
matz
fa1e530063
* string.c (rb_str_comparable): comparison including broken
...
coderange strings do not consider encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-23 16:07:09 +00:00
nobu
e3897c538c
* string.c (sym_call): use exact argument array interface.
...
[ruby-core:14279]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-23 02:26:45 +00:00
akr
b2a1dc616c
add rdoc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-22 08:38:53 +00:00
nobu
7f59e105d1
* string.c (rb_str_buf_append): improvement for non-broken coded
...
strings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 23:29:56 +00:00
nobu
977eea57a3
* string.c (rb_str_succ): retry increasing until valid char is found.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 11:09:19 +00:00
matz
3ec3412d83
* string.c (rb_str_chomp_bang): avoid unnecessary loop using
...
rb_enc_prev_char().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 04:03:19 +00:00
akr
2b62714866
* string.c (rb_str_is_ascii_only_p): new method ascii_only?.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 03:18:37 +00:00
akr
4cf437519f
* regerror.c, string.c, io.c, lib/getoptlong.rb, lib/net/imap.rb,
...
compile.c, sprintf.c, parse.y, ext/win32ole/win32ole.c,
ext/tk/sample/demos-en/entry3.rb, ext/tk/lib/tcltk.rb,
ext/openssl/ossl_bn.c, numeric.c, vm.c,
benchmark/bm_so_meteor_contest.rb, bignum.c, ruby.c: don't "illegal"
for non law violation context.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 02:31:11 +00:00
matz
cfb91bc2f5
* string.c (tr_trans): wrong encoding check for tree strings.
...
* test/ruby/test_m17n.rb (TestM17N::test_tr_s): "invalid mbstring
sequence" is not an error to be tested.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-20 15:27:35 +00:00
matz
1c32ff927f
* string.c (rb_str_index): wrong starting position.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-20 00:08:23 +00:00
matz
d874dde282
* string.c (rb_str_each_line): should consider rslen.
...
* string.c (rb_str_buf_append): should propagate encoding.
* string.c (rb_str_each_line): ditto.
* test/ruby/test_m17n.rb (TestM17N::test_str_each_line): should
check encoding as well.
* test/ruby/test_m17n.rb (TestM17N::test_str_each_line): empty
array can not propagate encoding; should not check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 17:46:17 +00:00
matz
77629d2cbe
* string.c (rb_str_rindex_m): too much adjustment.
...
* re.c (reg_match_pos): pos adjustment should be based on
characters.
* test/ruby/test_m17n.rb (TestM17N::test_str_insert): test updated
to check negative offset behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 17:02:29 +00:00
matz
a329b77348
* string.c (rb_str_rindex): comparison length should be based on
...
bytes, not characters.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 14:43:37 +00:00
matz
3e212b0484
* string.c (rb_str_chomp_bang): wrong adjust condition.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 14:38:46 +00:00
matz
1c7f24d5b1
* string.c (str_sublen): adjust position if position is not at the
...
head of a character.
* string.c (rb_str_chomp_bang): check if match start at the head
of a character.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 14:15:05 +00:00
nobu
474a88f041
* re.c (rb_reg_regsub): should set checked encoding.
...
* string.c (rb_str_sub_bang): applied r14212 too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 12:42:19 +00:00
matz
ac5250098d
* string.c (rb_str_justify): should propagate encoding from pad
...
string too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 06:15:35 +00:00
matz
ec69dddc0d
* string.c (rb_str_splice): propagate encoding.
...
* string.c (rb_str_subpat_set): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-18 09:14:46 +00:00
matz
a3a6ba9584
* string.c (str_nth): need not to raise out-of-range exception.
...
* test/ruby/test_m17n.rb (TestM17N::test_str_aref_len): removed
debug print.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-18 05:44:30 +00:00
matz
ebfcc5d933
* re.c (rb_reg_initialize): raise error if non-Unicode fixed
...
encoding option is specified for regexp literals with \u{}
escapes.
* string.c (rb_str_squeeze_bang): should squeeze multibyte
characters as well.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-17 16:06:21 +00:00