summaryrefslogtreecommitdiff
path: root/string.c
AgeCommit message (Collapse)Author
2009-07-15merges r24103 from trunk into ruby_1_9_1.yugui
-- Check pos and strlen on Regexp#index(str, pos) [ruby-core:23660] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@24123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-12merges r23930 from trunk into ruby_1_9_1.yugui
-- * 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/branches/ruby_1_9_1@24051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-12merges r23916 from trunk into ruby_1_9_1.yugui
-- * 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/branches/ruby_1_9_1@24049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-20merges r23568 from trunk into ruby_1_9_1.yugui
-- * 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/branches/ruby_1_9_1@23762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-20merges r23562 and r23564 from trunk into ruby_1_9_1.yugui
-- * string.c (rb_str_partition): should use the converted result. a patch from Marc-Andre Lafortune at [ruby-core:23540]. -- * string.c (rb_str_rpartition): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-04merges r23160 from trunk into ruby_1_9_1.yugui
-- * 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/branches/ruby_1_9_1@23334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-04merges r23159 from trunk into ruby_1_9_1.yugui
-- * 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/branches/ruby_1_9_1@23333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-04merges r23155 and r23158 from trunk into ruby_1_9_1.yugui
-- * string.c (rb_str_chop_bang): reset coderange. [ruby-core:23155] -- * test/ruby/test_string.rb (test_chop, test_chop!): tests for [ruby-core:23155]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-04merges r22611 from trunk into ruby_1_9_1.yugui
-- * 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/branches/ruby_1_9_1@22745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03merges r22608 from trunk into ruby_1_9_1.yugui
-- * string.c (rb_str_chomp_bang): coderange may change. [ruby-core:22414] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@22739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03merges r22606 from trunk into ruby_1_9_1.yugui
-- * string.c (rb_str_delete_bang): should recalculate coderange. [ruby-talk:329267] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@22738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03merges r22505 and r22547 from trunk into ruby_1_9_1.yugui
-- * string.c (tr_trans): should not be affected by the encoding of replacement unless actually modified. [ruby-talk:328967] -- * 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/branches/ruby_1_9_1@22731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22merges r22255 from trunk into ruby_1_9_1.yugui
* 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/branches/ruby_1_9_1@22532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22merges r22083 from trunk into ruby_1_9_1.yugui
* 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/branches/ruby_1_9_1@22515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-26merges r20952 from trunk into ruby_1_9_1.yugui
* string.c (rb_external_str_new_with_enc): set ASCII-8BIT if encoding is US-ASCII and string contains 8bit characters. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-25merges r20906 from trunk into ruby_1_9_1.yugui
* string.c (rb_str_upto): should return enumerator if called without block. [ruby-dev:37526] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17merges r20804 from trunk into ruby_1_9_1.yugui
* string.c (rb_str_hash): gets rid of collisions between different encoding strings. [ruby-core:20526] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-16merges r20723 and r20724 from trunk into ruby_1_9_1.yugui
* string.c (sym_inspect): quote if symbol contains non-printable characters. [ruby-dev:37398] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-16merges r20722 from trunk into ruby_1_9_1.yugui
* string.c (sym_equal): remove documentation error "Otherwise, compares them as strings". [ruby-dev:37398] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-13merges r20651 from trunk into ruby_1_9_1.yugui
* string.c (rb_string_value_ptr, rb_to_id): do not use a side effect expression in RSTRING_PTR. * string.c (rb_str_split_m): simplified the argument of RSTRING_LEN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-05merges r20534 from trunk into ruby_1_9_1.yugui
* string.c (rb_str_cmp_m): fixed rdoc. pointed out by <Thomas C. Mitchell AT gmail.com> at [ruby-talk:321967] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-18merges r20224 from trunk into ruby_1_9_1yugui
* include/ruby/intern.h (rb_{external,locale}_str_new_cstr): optimized versions for literal strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-11merges r20145 from trunk into ruby_1_9_1.yugui
* ext/curses/curses.c: curses encoding should obey locale. * ext/curses/curses.c (curses_getch): 1.9 getch should return one character string for single byte string. wchar_t support may follow in the future. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-11merges r20125 from trunk into ruby_1_9_1.yugui
* string.c (Init_String): remove Symbol#===. [ruby-dev:37026] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-30merges r20046 from trunk into ruby_1_9_1.yugui
* string.c (rb_str_check_dummy_enc): new function to check dummy encoding. * string.c (rb_str_upcase_bang): case conversion functions should not be applicable to strings in dummy encoding. [ruby-dev:36985] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-29* string.c (rb_str_cmp): fix condition which always returned truemame
because ENCODING_GET returns unsigned long. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-24* string.c (rb_str_dump): should have removed commented outmatz
unnecessary code. [ruby-cvs:27131] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-24* string.c (rb_str_dump): do not use C++ comment.shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-23* string.c (rb_str_dump): use \u{ff} escape for UTF-8 encodingmatz
string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-22* string.c (rb_str_conv_enc_opts): new function to convert withmatz
specifying ecflags and ecopts. * ext/zlib/zlib.c (gzfile_newstr): specify ecflags and ecopts for conversion using above function. * ext/zlib/zlib.c (gzfile_newstr): use own rb_econv_t for dummy encoding to handling stateful encoding (e.g. iso-2022-jp). [ruby-dev:36857] * ext/zlib/zlib.c (gzfile_getc): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-22* string.c (rb_external_str_new_with_enc): no implicit strlen call.matz
[ruby-dev:36854] * string.c (rb_external_str_new_cstr): new function to create string from external NUL terminated C string. * string.c (rb_locale_str_new_cstr): ditto. * ext/readline/readline.c: now use rb_locale_str_new_cstr(). * test/sdbm/test_sdbm.rb (TestSDBM#test_delete_with_block): deleted key to the block may be a copy of specified key. * test/dbm/test_dbm.rb (TestDBM#test_delete_with_block): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-21* string.c (rb_external_str_new_with_enc): wrong condition tomatz
calculate strlen(). * ext/readline/readline.c: add encoding support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-21* ext/zlib/zlib.c: remove obsolete prototype macros.matz
* ext/zlib/zlib.c (struct gzfile): add encoding field to gzfile structure. * ext/zlib/zlib.c (rb_gzreader_getc): now works on characters. * ext/zlib/zlib.c (rb_gzreader_getbyte): new method to retrieve single byte. * ext/zlib/zlib.c (rb_gzreader_readbyte): ditto. * ext/zlib/zlib.c (rb_gzreader_each_byte): renamed from each_char * ext/zlib/zlib.c (rb_gzreader_ungetc): allow unget strings. * ext/zlib/zlib.c (rb_gzreader_ungetbyte): renamed from ungetc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-20* include/ruby/ruby.h (ExportStringValue): new macro to convertmatz
string in internal encoding to external to export. * string.c (rb_str_export): new function to do conversion to external encoding. * ext/sdbm/init.c: encoding conversion support. * ext/dbm/dbm.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-20* string.c (rb_locale_str_new): new function to convert stringmatz
from locale to internal encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-18* string.c (rb_external_str_new): a new function to convert frommatz
external encoding to internal encoding. if something went wrong, it returns a string with the external encoding. * string.c (rb_external_str_new_with_enc): same as above besides you can specify the source encoding. * ruby.c (ruby_set_argv): use rb_external_str_new() * ruby.c (set_arg0, ruby_script): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-16* .gdbinit (rp): REGEXP handling fixed.matz
* string.c (rb_str_rindex_m): need not to call rb_enc_check on regexp. * re.c (unescape_escaped_nonascii): try ASCII-8BIT encoding for broken strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-06* string.c (rb_str_comparable): string comparison should bematz
transitive. [ruby-dev:36484] * test/ruby/test_m17n_comb.rb (TestM17NComb#test_str_eq): test updated. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-02* string.c (rb_str_sub_bang): fix coderange.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-30* string.c (rb_str_split_m): should use rb_str_subseq() which usematz
offset and length by bytes. [ruby-dev:36641] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-29* string.c (rb_str_subseq): don't use rb_str_drop_bytes for shortakr
string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-29* string.c (rb_str_subseq): use rb_str_drop_bytes if possible.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-28* string.c (str_new): sets empty string to coderange 7bit.nobu
[ruby-core:18993] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-24 * string.c (rb_str_rstrip_bang): raise exception when the encoding ofusa
the string is dummy. * string.c (rb_str_rstrip_bang): remove nul characters even if the encoding of the string is not single byte optimizable. fixed [ruby-core:18844], reported by Michael Selig. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-24 * string.c (rb_str_strip_bang): workaround for VC++8 x64.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-24* string.c (rb_str_rstrip_bang): removing mixed spaces and nuls atmatz
the end of strings. [ruby-dev:36497] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23* string.c (rb_str_casecmp): make the ordering consistent withakr
String#<=>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-18* string.c (rb_str_comparable): make ascii8bit string to bematz
compatible with any other encoding. * string.c (rb_str_cmp): use rb_str_comparable() instead of rb_enc_compatible() since <=> is a comparison anyway. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-18* grapheme cluster implementation reverted. [ruby-dev:36375]akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-17* string.c (rb_str_casecmp): don't use rb_enc_codepoint.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e