matz
9166bd2bc9
* string.c (rb_str_rstrip_bang): wrong strip point. [ruby-dev:31652]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-27 14:17:28 +00:00
nobu
3ca07d8718
* string.c (sym_encoding): return the encoding of a Symbol.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-27 06:56:49 +00:00
matz
fa02a6cedd
* string.c (tr_trans): wrong condition for mbmaxlen==1 strings.
...
[ruby-dev:31652]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-27 04:51:45 +00:00
ko1
5ba27573a0
* string.c, include/ruby/intern.h: export rb_str_length().
...
* insns.def: use rb_str_lengt() in opt_length.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 08:54:29 +00:00
nobu
10f56f8fd0
* string.c (rb_str_splice): return from void funtion.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 07:14:01 +00:00
matz
a25fbe3b3e
* encoding.c: provide basic features for M17N.
...
* parse.y: encoding aware parsing.
* parse.y (pragma_encoding): encoding specification pragma.
* parse.y (rb_intern3): encoding specified symbols.
* string.c (rb_str_length): length based on characters.
for older behavior, bytesize method added.
* string.c (rb_str_index_m): index based on characters. rindex as
well.
* string.c (succ_char): encoding aware succeeding string.
* string.c (rb_str_reverse): reverse based on characters.
* string.c (rb_str_inspect): encoding aware string description.
* string.c (rb_str_upcase_bang): encoding aware case conversion.
downcase, capitalize, swapcase as well.
* string.c (rb_str_tr_bang): tr based on characters. delete,
squeeze, tr_s, count as well.
* string.c (rb_str_split_m): split based on characters.
* string.c (rb_str_each_line): encoding aware each_line.
* string.c (rb_str_each_char): added. iteration based on
characters.
* string.c (rb_str_strip_bang): encoding aware whitespace
stripping. lstrip, rstrip as well.
* string.c (rb_str_justify): encoding aware justifying (ljust,
rjust, center).
* string.c (str_encoding): get encoding attribute from a string.
* re.c (rb_reg_initialize): encoding aware regular expression
* sprintf.c (rb_str_format): formatting (i.e. length count) based
on characters.
* io.c (rb_io_getc): getc to return one-character string.
for older behavior, getbyte method added.
* ext/stringio/stringio.c (strio_getc): ditto.
* io.c (rb_io_ungetc): allow pushing arbitrary string at the
current reading point.
* ext/stringio/stringio.c (strio_ungetc): ditto.
* ext/strscan/strscan.c: encoding support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
matz
5e1c401ff5
* array.c (rb_ary_s_try_convert): a new class method to convert
...
object or nil if it's not target-type. this mechanism is used
to convert types in the C implemented methods.
* hash.c (rb_hash_s_try_convert): ditto.
* io.c (rb_io_s_try_convert): ditto.
* re.c (rb_reg_s_try_convert): ditto.
* string.c (rb_str_s_try_convert): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 17:47:09 +00:00
matz
b6449f6080
* string.c (Init_String): remove Symbol.intern and Symbol#dump.
...
[ruby-dev:31525]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-20 14:30:12 +00:00
nobu
c2a41b3a71
* insnhelper.ci, string.c: fixed indent.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 05:11:49 +00:00
nobu
4b40f2c516
* string.c (rb_str_resize): fix indent.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-21 14:54:51 +00:00
nobu
6c12b69fda
* string.c (rb_str_rindex_m): accept string-like object convertible
...
with #to_str method, as well as rb_str_index_m. [ruby-core:11692]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-16 09:29:35 +00:00
matz
99c58e9ebc
* string.c (rb_str_clear): need to check STR_EMBED_P() before
...
free()ing memory. a patch from Yusuke ENDOH <mame AT tsg.ne.jp>.
[ruby-dev:31062]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-26 15:19:39 +00:00
akr
fe377d3b8e
update document to follow MatchData#inspect implementation.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-23 08:34:21 +00:00
matz
115410ecde
* string.c (rb_str_upto): add optional argument to specify
...
exclusiveness.
* range.c (range_step): use String#upto with optional argument.
* range.c (range_each): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-22 16:23:16 +00:00
nobu
2b592580bf
* include/ruby: moved public headers.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
matz
b83ed6d1bd
* parse.y, compile.c, gc.c, insns.def, intern.h, iseq.c, node.h,
...
object.c, string.c, variable.c, vm_macro.def: revert private
instance variable feature, which is postponed until next major
release.
* marshal.c: TYPE_SYMBOL2 removed; MARSHAL_MINOR reverted back to
8th version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-23 02:49:41 +00:00
matz
0c882f4c9d
* string.c (rb_str_ord): need not to check string length; ord
...
returns a codepoint for the first character in the string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-23 01:21:49 +00:00
matz
3098d80818
* re.c (reg_operand): allow symbols to be operands for regular
...
expression matches.
* string.c (Init_String): allow Symbol#===.
* lib/date/format.rb (Date::Format::Bag::to_hash): string
added prefixes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-14 04:57:25 +00:00
matz
72f2d2a00d
* parse.y (rb_compose_ivar2): function to create a new ivar2
...
symbol from a symbol and a class. back-ported from matzruby.
* parse.y (rb_decompose_ivar2): reverse function of
rb_compose_ivar2().
* marshal.c (w_symbol): support class local instance variables.
* marshal.c (r_object0): ditto.
* compile.c (defined_expr): ditto.
* compile.c (iseq_compile_each): ditto.
* insns.def: add two new instructions: getinstancevariable2 and
setinstancevariable2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-04 19:17:33 +00:00
matz
6e0fed271c
* ruby.h (SYMBOL_P): make Symbol immediate again for performance.
...
* string.c: redesign symbol methods.
* parse.y (rb_id2str): store Strings for operator symbols.
[ruby-dev:30235]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-02 13:19:44 +00:00
usa
2fc900dac8
* string.c (rb_str_sub_bang): calling rb_str_modify() should be just
...
before actually modifying the string.
fixed: [ruby-dev:30211] (originally reported by zunda)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-30 08:02:30 +00:00
ko1
7eb928624f
* eval_proc.c (rb_proc_new): added.
...
* string.c (sym_to_proc): supported.
* vm.c (invoke_block, th_invoke_yield, th_invoke_proc): fix to support
rb_proc_new.
* yarvcore.c: add a test code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-16 03:06:01 +00:00
matz
0143945146
* string.c (rb_str_upto): use RSTRING_LEN().
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-08 20:11:40 +00:00
matz
af040cb612
* string.c (rb_str_upto): String#upto from empty string makes
...
inifinite loop. [ruby-core:09864]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-08 18:58:31 +00:00
ko1
a3e1b1ce7e
* Merge YARV
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
matz
2126364501
* string.c (rb_str_ord): typo fixed. reported from Kornelius
...
Kalnbach <murphy@rubychan.de>. [ruby-core:09621]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-21 16:47:01 +00:00
matz
2b38c2e0fb
* string.c (rb_str_slice_bang): rdoc description bug fixed.
...
[ruby-core:09754]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-21 16:41:17 +00:00
matz
f70c171f8c
* string.c (rb_str_aset): index double decode problem.
...
[ruby-core:09695]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-11 00:45:32 +00:00
matz
0ee03fefad
* string.c (Init_String): remove duplicated definition of
...
Symbol#to_s.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-06 13:24:57 +00:00
matz
6d32246b31
* parse.y (arg_dup_check): vid may be nameless internal id.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-06 06:37:40 +00:00
matz
030204ccf3
* string.c: class Symbol is no longer subclass of String. also
...
covers [ruby-core:09366]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-02 01:27:58 +00:00
matz
11e562f34a
* string.c (hash): use Bob Jenkins' hash algorithm.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-01 14:23:42 +00:00
matz
be21791e57
* string.c (rb_str_upcase, rb_str_downcase, rb_str_downcase,
...
rb_str_upcase_bang, rb_str_downcase_bang, rb_str_swapcase_bang):
add RDoc description that case conversion to be effective only
in ASCII region.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-22 08:06:16 +00:00
nobu
1366131642
* string.c (rb_str_substr): should be infected with only original
...
string, but not the shared string. fixed: [ruby-core:09152]
* strnig.c (rb_str_new4): keep shared string untainted when orignal
string is tainted. fixed: [ruby-dev:29672]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-22 07:48:53 +00:00
matz
f87431ce95
* string.c (rb_str_each_line): String#lines now works when a block
...
is given. in other words, lines become an alias to each_line.
[ruby-core:09218]
* string.c (rb_str_each_byte): ditto for bytes in place of lines.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-18 04:30:40 +00:00
matz
24691fa633
* string.c (rb_str_lines): now takes optional argument for the
...
line separator.
* io.c (rb_io_lines, rb_io_bytes): new methods.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-16 23:07:07 +00:00
matz
7df8b0501a
* string.c (rb_str_partition): RDoc update. a patch from
...
Mauricio Fernandez <mfp at acm.org>. [ruby-core:09160]
* hash.c (rb_hash_compare_by_id): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-12 16:07:21 +00:00
matz
d2133ab996
* string.c (rb_str_scan): small documentation fix.
...
[ruby-core:09007]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-07 15:55:17 +00:00
matz
4392e94d96
* string.c (rb_str_lines): returns an Enumerator instead of an
...
array of lines.
* string.c (rb_str_bytes): a new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-02 16:39:21 +00:00
matz
62ad417517
* string.c (rb_str_startwith): rename startwith? to start_with?,
...
endwith? to endwith?, respectively. [ruby-talk:216685]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-27 12:45:29 +00:00
matz
1113d54ede
* array.c (rb_ary_shift): shift/unshift performance boost patch,
...
based on the patch from Eric Mahurin <eric_mahurin at yahoo.com>.
[ruby-core:05861]
* array.c (rb_ary_unshift_m): ditto.
* array.c (ary_make_shared): ditto.
* array.c (RESIZE_CAPA): ditto.
* array.c (rb_ary_free): new function to free memory. code moved
from gc.c.
* string.c (rb_str_free): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-26 22:46:16 +00:00
matz
a2fc608087
* string.c (rb_str_partition): no need to call rb_call_super(),
...
since String is no longer includes Enumerable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-22 09:08:58 +00:00
matz
5b950717b7
* string.c (str_new3): embed shorter strings more eagerly.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-21 22:50:32 +00:00
matz
f5ec2b0d75
* string.c (rb_str_startwith): a new method to check if a string
...
starts with given prefix.
* string.c (rb_str_endwith): the opposite of String#startwith?.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-21 08:47:03 +00:00
matz
4e37427ee5
* string.c (Init_String): Strings are no longer Enumerable. use
...
each_lines or lines method explicitly.
* string.c (Init_String): remove each method. use each_lines.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-21 05:57:20 +00:00
matz
77fef79f10
* string.c (rb_str_partition): RDoc typo fixed. [ruby-core:08898]
...
* string.c (rb_str_rpartition): fixed separation seek bug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-21 01:10:25 +00:00
matz
e79002a022
* string.c (rb_str_lines): new method to split a string into lines.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-21 00:43:16 +00:00
matz
71afefd5d1
* string.c (rb_str_partition): a new method to separate the string
...
by a separator. taken from Python 2.5.
* string.c (rb_str_rpartition): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-20 16:41:56 +00:00
matz
803591e900
* string.c (sym_eql): fail early to gain performance.
...
* string.c (sym_hash): cache hash value in aux.shared if possible.
* gc.c (rb_obj_id): no need to treat symbols specially.
* lib/fileutils.rb (FileUtils::FileUtils): singleton_methods() no
longer return an array of strings, but of symbols.
* lib/delegate.rb (DelegateClass): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-20 04:18:25 +00:00
matz
2a23c281a1
* string.c (rb_str_intern): allow zero length symbols.
...
[ruby-core:08861]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-14 07:36:53 +00:00