summaryrefslogtreecommitdiffstats
path: root/string.c
Commit message (Collapse)AuthorAgeFilesLines
* * string.c (hash): fixed typo. [ruby-dev:37791]nobu2009-01-191-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (hash): defaulted to MurmurHash 2.0.nobu2009-01-191-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (hash): added MurmurHash 2.0.nobu2009-01-191-54/+93
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_external_str_new_with_enc): set ASCII-8BIT ifmatz2008-12-231-0/+5
| | | | | | encoding is US-ASCII and string contains 8bit characters. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_upto): should return enumerator if calledmatz2008-12-221-0/+1
| | | | | | without block. [ruby-dev:37526] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_hash): gets rid of collisions between differentnobu2008-12-171-1/+5
| | | | | | | encoding strings. [ruby-core:20526] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_printable): wrong condition for string iteration.matz2008-12-131-4/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_inspect): quote if symbol contains non-printablematz2008-12-131-1/+15
| | | | | | characters. [ruby-dev:37398] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_equal): remove documentation error "Otherwise,matz2008-12-131-2/+1
| | | | | | compares them as strings". [ruby-dev:37398] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_string_value_ptr, rb_to_id): do not use a sidenobu2008-12-121-4/+7
| | | | | | | | | | effect expression in RSTRING_PTR. * string.c (rb_str_split_m): simplified the argument of RSTRING_LEN. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_cmp_m): fixed rdoc. pointed out by <Thomasnobu2008-12-051-2/+2
| | | | | | | C. Mitchell AT gmail.com> at [ruby-talk:321967] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_to_proc): tabified.nobu2008-12-041-8/+8
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_to_proc): use hidden object.nobu2008-12-041-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_to_proc): caches Symbol procs, based on a patch fromnobu2008-12-041-2/+25
| | | | | | | Shumpei Akai <admin AT flexfrank.net>. [ruby-dev:37265] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h (rb_{external,locale}_str_new_cstr): optimizednobu2008-11-111-0/+2
| | | | | | | versions for literal strings. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/curses/curses.c: curses encoding should obey locale.matz2008-11-071-0/+6
| | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@20145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (Init_String): remove Symbol#===. [ruby-dev:37026]matz2008-11-061-8/+0
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_check_dummy_enc): new function to check dummymatz2008-10-291-3/+14
| | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@20046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_cmp): fix condition which always returned truemame2008-10-291-1/+1
| | | | | | | because ENCODING_GET returns unsigned long. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_dump): should have removed commented outmatz2008-10-241-1/+0
| | | | | | unnecessary code. [ruby-cvs:27131] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_dump): do not use C++ comment.shyouhei2008-10-241-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_dump): use \u{ff} escape for UTF-8 encodingmatz2008-10-231-9/+33
| | | | | | string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_conv_enc_opts): new function to convert withmatz2008-10-221-2/+8
| | | | | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@19892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_external_str_new_with_enc): no implicit strlen call.matz2008-10-221-1/+12
| | | | | | | | | | | | | | | | | | [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: http://svn.ruby-lang.org/repos/ruby/trunk@19885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_external_str_new_with_enc): wrong condition tomatz2008-10-211-2/+3
| | | | | | | | calculate strlen(). * ext/readline/readline.c: add encoding support. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/zlib/zlib.c: remove obsolete prototype macros.matz2008-10-211-6/+11
| | | | | | | | | | | | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@19869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (ExportStringValue): new macro to convertmatz2008-10-201-38/+59
| | | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@19855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_locale_str_new): new function to convert stringmatz2008-10-201-0/+6
| | | | | | from locale to internal encoding. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_external_str_new): a new function to convert frommatz2008-10-181-0/+54
| | | | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@19834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * .gdbinit (rp): REGEXP handling fixed.matz2008-10-161-1/+1
| | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@19812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_comparable): string comparison should bematz2008-10-061-3/+0
| | | | | | | | | transitive. [ruby-dev:36484] * test/ruby/test_m17n_comb.rb (TestM17NComb#test_str_eq): test updated. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_sub_bang): fix coderange.akr2008-10-021-1/+5
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_split_m): should use rb_str_subseq() which usematz2008-09-301-2/+2
| | | | | | offset and length by bytes. [ruby-dev:36641] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_subseq): don't use rb_str_drop_bytes for shortakr2008-09-291-2/+3
| | | | | | | string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_subseq): use rb_str_drop_bytes if possible.akr2008-09-291-1/+9
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (str_new): sets empty string to coderange 7bit.nobu2008-09-281-0/+3
| | | | | | | [ruby-core:18993] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_rstrip_bang): raise exception when the encoding ofusa2008-09-241-2/+6
| | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@19529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_strip_bang): workaround for VC++8 x64.usa2008-09-241-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_rstrip_bang): removing mixed spaces and nuls atmatz2008-09-241-5/+2
| | | | | | the end of strings. [ruby-dev:36497] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_casecmp): make the ordering consistent withakr2008-09-231-16/+26
| | | | | | | String#<=>. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_comparable): make ascii8bit string to bematz2008-09-181-1/+4
| | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@19418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * grapheme cluster implementation reverted. [ruby-dev:36375]akr2008-09-181-50/+112
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_casecmp): don't use rb_enc_codepoint.akr2008-09-171-15/+38
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/oniguruma.h (OnigEncodingTypeST): add precise_retakr2008-09-161-97/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | argument for mbc_to_code. (ONIGENC_MBC_TO_CODE): provide NULL for precise_ret. (ONIGENC_MBC_PRECISE_CODEPOINT): defined. * include/ruby/encoding.h (rb_enc_mbc_precise_codepoint): defined. * regenc.h (onigenc_single_byte_mbc_to_code): precise_ret argument added. (onigenc_mbn_mbc_to_code): ditto. * regenc.c (onigenc_single_byte_mbc_to_code): precise_ret argument added. (onigenc_mbn_mbc_to_code): ditto. * string.c (count_utf8_lead_bytes_with_word): removed. (str_utf8_nth): removed. (str_utf8_offset): removed. (str_strlen): UTF-8 codepoint oriented optimization removed. (rb_str_substr): ditto. (enc_succ_char): use rb_enc_mbc_precise_codepoint. (enc_pred_char): ditto. (rb_str_succ): ditto. * encoding.c (rb_enc_ascget): check length with rb_enc_mbc_precise_codepoint. (rb_enc_codepoint): use rb_enc_mbc_precise_codepoint. * regexec.c (string_cmp_ic): add text_end argument. (match_at): check end of character after exact string matches. * enc/utf_8.c (graphme_table): defined for extended graphme cluster boundary. (grapheme_cmp): defined. (get_grapheme_properties): defined. (grapheme_boundary_p): defined. (MAX_BYTES_LENGTH): defined. (comb_char_enc_len): defined. (mbc_to_code0): extracted from mbc_to_code. (mbc_to_code): use mbc_to_code0. (left_adjust_combchar_head): defined. (utf_8): use a extended graphme cluster as a unit. * enc/unicode.c (onigenc_unicode_mbc_case_fold): use ONIGENC_MBC_PRECISE_CODEPOINT to extract codepoints. (onigenc_unicode_get_case_fold_codes_by_str): ditto. * enc/euc_jp.c (mbc_to_code): follow mbc_to_code field change. use onigenc_mbn_mbc_to_code. * enc/shift_jis.c (mbc_to_code): ditto. * enc/emacs_mule.c (mbc_to_code): ditto. * enc/gbk.c (gbk_mbc_to_code): follow mbc_to_code field and onigenc_mbn_mbc_to_code change. * enc/cp949.c (cp949_mbc_to_code): ditto. * enc/big5.c (big5_mbc_to_code): ditto. * enc/euc_tw.c (euctw_mbc_to_code): ditto. * enc/euc_kr.c (euckr_mbc_to_code): ditto. * enc/gb18030.c (gb18030_mbc_to_code): ditto. * enc/utf_32be.c (utf32be_mbc_to_code): follow mbc_to_code field change. * enc/utf_16be.c (utf16be_mbc_to_code): ditto. * enc/utf_32le.c (utf32le_mbc_to_code): ditto. * enc/utf_16le.c (utf16le_mbc_to_code): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_concat): fix rdoc. (codepoint is integer)naruse2008-09-161-5/+5
| | | | | | * string.c (rb_str_each_codepoint): use UINT2NUM. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_crypt): orthodox crypt() sees only first two bytesnobu2008-09-161-16/+13
| | | | | | | of salt. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_each_codepoint): add new methods, #codepointsmatz2008-09-161-0/+55
| | | | | | | and #each_codepoint. a patch from Michael Selig <michael.selig at fs.com.au> in [ruby-core:18532]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c ():matz2008-09-161-121/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * string.c (): * string.c (single_byte_optimizable): make function inline. based on a patch from Michael Selig <michael.selig at fs.com.au> in [ruby-core:18532]. * string.c (str_modify_keep_cr): new function act as rb_str_modify(), but don't clear coderange * string.c (rb_str_casecmp): specialized for single byte strings. * string.c (rb_str_splice): preserve coderange. * string.c (rb_str_slice_bang, rb_str_reverse_bang, rb_str_upcase_bang, rb_str_downcase_bang, tr_trans, rb_str_capitalize_bang, rb_str_swapcase_bang, rb_str_delete_bang, rb_str_chop_bang, rb_str_chomp_bang, rb_str_lstrip_bang, rb_str_rstrip_bang): ditto. * string.c (rb_str_clear): preset coderange. * string.c (rb_str_split_m): specialized for splitting with a string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_buf_cat_ascii): codepoint is unsigned int.naruse2008-09-151-5/+5
| | | | | | | | | | * string.c (rb_str_concat): ditto. * string.c (str_cat_char): ditto. * string.c (prefix_escape): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_squeeze_bang): specialized for 7bit characters inmatz2008-09-151-30/+93
| | | | | | | | | | | | | | | | | | | | | | ASCII compatible strings. * string.c (rb_str_count): ditto. * string.c (tr_trans): preserve 7bit/valid coderange flag. * string.c (rb_str_squeeze_bang): preserve previous coderange value. * string.c (rb_str_lstrip_bang): ditto. * string.c (rb_str_rstrip_bang): ditto. * encoding.c (rb_default_external_encoding): preserve default_external_encoding in a static variable. * string.c (single_byte_optimizable): check coderange first, to reduce number of calling rb_enc_from_index(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e