naruse
011776b4a6
* string.c (rb_str_inspect): use rb_enc_mbc_to_codepoint
...
because we already knew char is found and got length.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-14 01:11:05 +00:00
nobu
31b7ae00c0
* include/ruby/st.h (st_hash_func): use st_index_t.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08 13:10:04 +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
ko1
8e8e34319b
* insns.def, vm.c, vm_insnhelper.c, vm_insnhelper.h: check
...
definition of (classes)#=== for case/when optimization.
Fix Bug #1376 [ruby-core:23190].
* string.c (Init_String), bignum.c (Init_Bignum),
numeric.c (Init_Numeric): define String#===, Symbol#===,
Bignum#===, Fixnum#===, Float#=== as same as (classes)#==.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 05:55:06 +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
8cdfbfd844
* string.c (tr_trans): change condition of singlebyte optimization.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-01 10:25:48 +00:00
naruse
c4641d6a00
Can't use singlebyte optimization when the replacement is multibyte. [ruby-core:24612]
...
* string.c (tr_trans): can't use singlebyte optimization when
the replacement is multibyte. [ruby-core:24612]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-31 20:36:04 +00:00
nobu
33151fcfe4
* string.c (rb_str_hash_cmp): got rid of overflow.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-18 08:43:30 +00:00
naruse
6a3931e0f6
Check pos and strlen on Regexp#index(str, pos) [ruby-core:23660]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-14 08:30:54 +00:00
matz
a5e227edfe
* hash.c (rb_hash_hash): documentation fix. a patch from
...
Marc-Andre Lafortune. [ruby-core:23943]
* object.c (rb_mod_cmp): ditto.
* range.c (range_eq): ditto.
* string.c (rb_str_partition, rb_str_rpartition): ditto.
* struct.c (rb_struct_s_def): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-01 21:20:44 +00:00
matz
5d7a215f6e
* re.c (reg_match_pos): adjust offset based on characters, not
...
bytes. [ruby-dev:38722]
* string.c (rb_str_offset): new function.
* string.c (rb_str_index_m): no call to rb_reg_adjust_startpos().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-30 09:06:48 +00:00
ko1
3caa4ee5e5
* array.c (rb_ary_memsize): added.
...
* io.c (rb_io_memsize): added.
* regcomp.c (onig_memsize): added.
* string.c (rb_str_memsize): added.
* transcode.c (rb_transcoding_memsize, rb_econv_memsize): added.
* variable.c (rb_geneic_ivar_memsize): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-16 22:36:27 +00:00
nobu
7915aed875
* string.c (str_replace_shared): shared target must be frozen.
...
[ruby-core:23727]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-11 17:41:27 +00:00
matz
c5949a0e58
* string.c (rb_str_gsub_bang): modify check at the beginning.
...
[ruby-core:23662] ref [ruby-core:23657]
* string.c (rb_str_rstrip_bang): ditto. [ruby-core:23657]
* string.c (rb_str_chop_bang): ditto.
* string.c (rb_str_chomp_bang): ditto.
* string.c (rb_str_reverse_bang): modify check added. [ruby-core:23671]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-02 15:24:23 +00:00
nobu
5ac1389aea
* string.c (rb_str_each_char, rb_str_each_codepoint): string
...
length must be long.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-25 18:38:46 +00:00
matz
970cfee510
* string.c (rb_str_hash): avoid calling rb_enc_str_asciionly_p().
...
* string.c (rb_str_replace): avoid redundant calling rb_str_new4().
* string.c (str_replace): factor out replacement from
rb_str_replace() without type check nor discarding the
destination contents.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-25 00:43:23 +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
matz
0fd3bdac6a
* string.c (rb_str_each_char): return original string.
...
[ruby-core:23499]
* string.c (rb_str_each_codepoint): protect string from
modification.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-23 15:59:09 +00:00
matz
3ee7fcc763
* string.c (rb_str_count): optimized for 1byte string count by
...
avoiding tr_setup_table().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-21 20:08:03 +00:00
matz
0980fe7903
* encoding.c (rb_enc_fast_mbclen): faster mbclen for strings known
...
to be valid.
* string.c (enc_strlen): coderange specified version of
rb_enc_strlen(). use rb_enc_fast_mbclen() if coderange is 7bit
or valid.
* string.c (str_gsub): use rb_enc_fast_mbclen().
* string.c (rb_str_reverse, rb_str_split_m, rb_str_each_char,
scan_once): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-20 04:44:36 +00:00
matz
91e5ba1cb8
* encoding.c (rb_enc_codepoint_len): combine rb_enc_codepoint()
...
and rb_enc_codelen() in one function to reduce calls.
* encoding.c (rb_enc_codepoint): compatibility function.
* sprintf.c (rb_str_format): use rb_enc_codepoint_len().
* string.c (rb_str_inspect, rb_str_upcase_bang,
rb_str_downcase_bang, rb_str_capitalize_bang,
rb_str_swapcase_bang, trnext, tr_trans, rb_str_delete_bang,
rb_str_squeeze_bang, rb_str_count, rb_str_split_m,
rb_str_each_line, rb_str_each_codepoint, rb_str_lstrip_bang,
sym_printable): ditto.
* transcode.c (make_econv_exception): use rb_enc_mbc_to_codepoint()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-19 16:59:22 +00:00
akr
d3cf82e22a
rdoc update.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-09 11:01:47 +00:00
nobu
013b277316
* string.c, include/ruby/encoding.h: fixed types.
...
* include/ruby/encoding.h (rb_enc_nth): long is used for index.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-07 05:16:26 +00:00
matz
254d12215c
* string.c (rb_str_split_m): faster processing on 7bit strings.
...
* string.c (ascii_isspace): faster isspace() for 7bit strings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-20 15:04:18 +00:00
mame
a5596dc6a3
* string.c (rb_str_dump): buffer length plus one byte for null
...
terminator. [ruby-dev:38294]
* test/ruby/test_m17n.rb (test_str_dump): add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-08 13:05:07 +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
naruse
8b95a0df1b
* string.c (rb_str_chop_bang): reset coderange. [ruby-core:23155]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-08 08:31:25 +00:00
nobu
22cde7b682
* dir.c, dln.c, parse.y, re.c, ruby.c, sprintf.c, strftime.c,
...
string.c, util.c, variable.c: use strlcpy, memcpy and snprintf
instead of strcpy, strncpy and sprintf.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-17 01:29:17 +00:00
nobu
8c8f85ed4f
* string.c (rb_hash_uint, rb_hash_start, rb_hash_end): use VALUE
...
rather than unsigned int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-15 02:11:45 +00:00
akr
f414bd65ae
* string.c (rb_str_subpat): accept capture name.
...
(rb_str_aref): follow above change.
(rb_str_aref_m): pass the 2nd argument to rb_str_subpat.
(rb_str_subpat_set): accept capture name.
(rb_str_aset): follow above change.
(rb_str_partition): ditto.
(rb_str_aset_m): pass the 2nd argument to rb_str_subpat_set.
* include/ruby/intern.h (rb_reg_backref_number): declared.
* re.c (rb_reg_backref_number): defined.
[ruby-core:21057]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-14 18:04:21 +00:00
nobu
d1abc53721
* array.c, bignum.c, dln.c, error.c, gc.c, io.c, marshal.c,
...
numeric.c, pack.c, strftime.c, string.c, thread.c, transcode.c,
transcode_data.h, util.c, variable.c, vm_dump.c,
include/ruby/encoding.h, missing/crypt.c, missing/vsnprintf.c:
suppress VC type warnings. [ruby-core:22726]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-12 09:16:15 +00:00
nobu
2e54fe9d4d
* array.c, bignum.c, gc.c, numeric.c, string.c, util.c, insns.def,
...
missing/crypt.c, missing/vsnprintf.c, : suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-10 05:43:14 +00:00
nobu
3dc758d966
* string.c (str_eql): extracted from rb_str_equal and rb_str_eql.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-05 01:29:12 +00:00
nobu
37dd754e97
* string.c (rb_str_chomp_bang): keeps 7bit coderange.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-05 01:24:57 +00:00
nobu
dd43561fd6
* string.c (rb_str_each_line): constified.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25 03:29:25 +00:00
nobu
43b9684962
* string.c (rb_str_force_encoding): should clear coderange at changing
...
encoding. [ruby-core:22437]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25 03:28:00 +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
83930529b2
stripped trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 14:26:27 +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
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
nobu
1128e61562
* array.c (rb_ary_resurrect), string.c (rb_str_resurrect): new
...
functions based on [ruby-dev:37983]
* insns.def (putstring, duparray): use rb_{ary,str}_resurrect().
* iseq.c (iseq_data_to_ary): needs to result TS_VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18 05:33:36 +00:00
nobu
62dd7a00fc
* string.c (rb_str_shared_replace): no need for
...
str_make_independent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-17 03:50:59 +00:00
mame
e722ad99d5
* string.c (rb_hash_uint32, rb_hash_uint, rb_hash_start, rb_hash_end),
...
include/ruby/intern.h: add Murmurhash API. [ruby-dev:37784]
* complex.c (nucomp_hash), array.c (rb_ary_hash), time.c (time_hash),
string.c (rb_str_hsah), object.c (rb_obj_hash), range.c
(range_hash), struct.c (rb_struct_hash), hash.c (rb_any_hash),
rational.c (nurat_hash): use Murmurhash. [ruby-dev:37784]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-14 19:55:34 +00:00
naruse
28eb7acf2c
* string.c (rb_external_str_new_with_enc): change evaluatioin order
...
for speed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-13 22:31:46 +00:00
nobu
e52da91987
* compile.c (compile_array_, defined_expr, iseq_compile_each): hide
...
and freeze internal literal objects, to prevent from modifying.
[ruby-dev:37959]
* iseq.c (insn_operand_intern): copy internal literal objects.
* insns.def (putstring, duparray): ditto.
* string.c (rb_str_replace): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-12 10:42:36 +00:00
matz
68ac487d19
* string.c (rb_str_each_codepoint): update RDoc for
...
String#codepoints. a patch from Radoslaw Bulat in
[ruby-core:21835]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-05 17:53:26 +00:00
akr
6ae8b15d93
* string.c (rb_str_dump): use MBCLEN_CHARFOUND_P properly.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-04 12:58:30 +00:00
nobu
c5dea4c69d
* string.c (hash): suppress a warning.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-21 06:26:51 +00:00