Commit graph

270 commits

Author SHA1 Message Date
nobu
e953a00ab2 * string.c (rb_str_justify): create buffer string after argument type
conversion.  fixed: [ruby-dev:25341]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-28 13:32:28 +00:00
nobu
947cf31bab * string.c (rb_str_inspect): escape # which starts an expression
substitution.  fixed: [ruby-core:03922]

* string.c (rb_str_dump): not escape # which isn't a substitution.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-09 05:38:59 +00:00
matz
f6348ca0ea * object.c (convert_type): [ruby-core:03845]
* eval.c (rb_funcall_rescue): new function.

* object.c (rb_Array): avoid using rb_respond_to().

* object.c (rb_Integer): ditto.

* eval.c (get_backtrace): no conversion for nil.

* parse.y (reduce_nodes): empty body should return nil.

* lib/cgi/session.rb (CGI::Session::initialize): [ruby-core:03832]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-29 06:13:52 +00:00
matz
7d783091a2 * io.c (read_all): [ruby-dev:24955]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-25 01:26:49 +00:00
matz
39080991ab * file.c (rb_file_chown): integer conversion should be prior to
GetOpenFile().  [ruby-dev:24947]

* file.c (rb_file_truncate): ditto.

* file.c (rb_file_s_truncate): ditto.

* dir.c (dir_seek): use NUM2OFFT().

* misc/ruby-mode.el (ruby-non-block-do-re): [ruby-core:03719]

* dir.c (dir_seek): should retrieve dir_data after NUM2INT().
  [ruby-dev:24941]

* string.c (rb_str_splice): should place index wrapping after
  possible modification.  [ruby-dev:24940]

* eval.c (error_print): nicer traceback at interrupt.
  [ruby-core:03774]

* string.c (str_gsub): internal buffer should not be listed by
  ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]

* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise
  exception if data corresponding to session specified from the
  client does not exist.

* string.c (str_gsub): internal buffer should not be listed by
  ObjectSpace.each_object().  [ruby-dev:24919]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-22 15:29:52 +00:00
eban
228b72b7a0 * string.c (rb_str_splice, rb_str_upcase_bang): cleanups.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-20 14:37:35 +00:00
eban
e2aea7a236 * test/ruby/test_stringchar.rb (test_bang): added.
* string.c (rb_str_upcase_bang, rb_str_capitalize_bang)
(rb_str_swapcase_bang): missing rb_str_modify().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-20 14:04:10 +00:00
matz
db8a49614f * process.c (proc_getpgrp): prohibit for $SAFE=2.
[ruby-dev:24899]

* process.c (get_pid): ditto.  [ruby-dev:24904]

* process.c (get_ppid): ditto.

* array.c (rb_ary_delete): defer rb_ary_modify() until actual
  modification.  [ruby-dev:24901]

* parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]

* parse.y (string_content): should not use FL_UNSET.

* node.h (NODE_NEWLINE): remove unused bit to utilize flag field
  in nodes.

* string.c (rb_str_splice): move rb_str_modify() after
  StringValue(), which may alter the receiver.  [ruby-dev:24878]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-18 03:47:14 +00:00
matz
73deb73392 * numeric.c (flo_divmod): protect float values from GC by
assignment to local variables.  [ruby-dev:24873]

* string.c (str_mod_check): frozen check should be separated.
  [ruby-core:3742]

* array.c (rb_ary_update): pedantic check to detect
  rb_ary_to_ary() to modify the receiver.  [ruby-dev:24861]

* string.c (rb_str_justify): typo fixed.  [ruby-dev:24851]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-16 14:54:49 +00:00
matz
8afd99d671 * string.c (rb_str_locktmp): check STR_TMPLOCK flag before
locking.  [ruby-dev:24727]

* gc.c (gc_mark): stricter GC stack check.

* string.c (str_gsub): should have removed rb_str_unlocktmp(str).
  [ruby-dev:24708]

* string.c (str_gsub): string modify check no longer based on
  tmplock.  [ruby-dev:24706]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-05 16:01:53 +00:00
matz
d55db6b999 * gc.c (gc_mark): enable GC stack checking.
* string.c (str_gsub): lock strings temporarily.  [ruby-dev:24687]

* ext/socket/socket.c (s_recvfrom): tmplock input buffer.
  [ruby-dev:24705]

* array.c (rb_ary_uniq_bang): do not push frozen string from hash
  table.  [ruby-dev:24695]

* array.c (rb_ary_and): ditto.

* array.c (rb_ary_or): ditto.

* ext/enumerator/enumerator.c (each_cons_i): pass copy of an
  internal consequent array.  [ruby-talk:118691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-04 01:20:51 +00:00
matz
c2a9b62fd2 * string.c (rb_str_locktmp): lock string temporarily.
* string.c (str_independent): add tmplock check.

* io.c (io_write): lock output string temporarily.
  [ruby-dev:24649]

* io.c (io_write): use rb_str_locktmp().

* io.c (read_all): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-30 15:33:03 +00:00
nobu
0879310091 * string.c (str_gsub): use STR_NOCAPA.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-27 15:23:16 +00:00
matz
ece87af00c * string.c (RESIZE_CAPA): check string attribute before modifying
capacity member of string structure.  [ruby-dev:24594]

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* eval.c (frame_free): Guy Decoux solved the leak problem.
  Thanks.  [ruby-core:03549]

* ext/zlib/zlib.c (zstream_append_input): clear klass for z->input
  to avoid potential vulnerability.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-27 02:46:54 +00:00
nobu
ffcc841ffe * string.c (str_gsub): use a string object for exception safeness.
[ruby-dev:24601]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-27 00:18:08 +00:00
nobu
5c60b00366 * string.c (rb_str_include): should not treat char as negative value.
[ruby-dev:24558]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-21 15:21:08 +00:00
matz
2ec51ee0d5 * string.c (str_gsub): reentrant check. [ruby-dev:24432]
* backport all SEGV bug fixes from CVS HEAD.  [ruby-dev:24536]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-20 12:47:20 +00:00
matz
860bdc3b61 * io.c (read_all): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24479]

* dir.c (rb_push_glob): block call at once the end of method.
  [ruby-dev:24487]

* ext/enumerator/enumerator.c (enum_each_slice): remove
  rb_gc_force_recycle() to prevent potential SEGV.
  [ruby-dev:24499]

* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string
  buffer by clearing klass.  [ruby-dev:24510]

* ext/socket/socket.c (sock_s_getservbyaname): protocol string
  might be altered.  [ruby-dev:24503]

* string.c (rb_str_upto): check if return value from succ is a
  string.  [ruby-dev:24504]

* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to
  avoid mode string modification.  [ruby-dev:24454]

* io.c (rb_io_getline_fast): should take delim as unsigned char to
  distinguish EOF and '\377'.  [ruby-dev:24460]

* io.c (rb_io_getline): add check for RS modification.
  [ruby-dev:24461]

* enum.c (enum_sort_by): use qsort() directly instead using
  rb_iterate().  [ruby-dev:24462]

* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to
  prevent access to recycled object (via continuation for
  example).  [ruby-dev:24463]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-19 10:25:23 +00:00
nobu
e54022001d * indent and tabify
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-18 23:48:49 +00:00
nobu
e1c72381c5 * string.c (rb_str_upto): method result must be checked. [ruby-dev:24504]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-18 23:47:06 +00:00
matz
f433be6d9c * io.c (rb_io_s_sysopen): preserve path in the buffer allocated by
ALLOCA_N() to prevent modification.  [ruby-dev:24438]

* io.c (rb_io_mode_flags): preserve append mode flag.
  [ruby-dev:24436]

* io.c (rb_io_modenum_mode): do not use external output buffer.

* string.c (rb_str_justify): differ pointer retrieval to prevent
  padding string modification.  [ruby-dev:24434]

* range.c (range_each_func): allow func to terminate loop by
  returning RANGE_EACH_BREAK.

* range.c (member_i): use RANGE_EACH_BREAK. [ruby-talk:114959]

* marshal.c (r_byte): retrieve pointer from string value for each
  time.  [ruby-dev:24404]

* marshal.c (r_bytes0): ditto.

* enum.c (sort_by_i): re-entrance check added.  [ruby-dev:24399]

* io.c (io_read): should freeze all reading buffer.
  [ruby-dev:24400]

* string.c (rb_str_sum): should use bignums when bits is greater
  than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]

* eval.c (specific_eval): defer pointer retrieval to prevent
  unsafe sourcefile string modification.  [ruby-dev:24382]

* eval.c (specific_eval): defer pointer retrieval to prevent
  unsafe sourcefile string modification.  [ruby-dev:24382]

* string.c (rb_str_sum): wrong cast caused wrong result.
  [ruby-dev:24385]

* enum.c (enum_sort_by): hide temporary array from
  ObjectSpace.each_object.  [ruby-dev:24386]

* string.c (rb_str_sum): check was done with false pointer.
  [ruby-dev:24383]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-06 15:15:12 +00:00
matz
6f9dcadf6e * string.c (rb_str_sum): check was done with false pointer.
[ruby-dev:24383]

* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]

* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
  sourcefile string modification.  [ruby-dev:24373]

* io.c (io_read): block string buffer modification during
  rb_io_fread() by freezing it temporarily. [ruby-dev:24366]

* io.c (rb_io_s_popen): mode argument may be altered.
  [ruby-dev:24375]

* file.c (rb_file_s_basename): ext argument may be altered.
  [ruby-dev:24377]

* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
  [ruby-dev:24378]

* string.c (rb_str_chomp_bang): StringValue() may change the
  receiver.  [ruby-dev:24371]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-02 03:50:53 +00:00
matz
de5a85496a * array.c (rb_ary_equal): element size might change during
comparison.  [ruby-dev:24254]

* array.c (rb_ary_diff): ditto. [ruby-dev:24274]

* array.c (rb_ary_select): ditto. [ruby-dev:24278]

* array.c (rb_ary_delete): ditto. [ruby-dev:24283]

* array.c (rb_ary_rindex): ditto. [ruby-dev:24275]

* array.c (rb_ary_initialize): element size might change during
  initializing block.  [ruby-dev:24284]

* dir.c (dir_s_chdir): avoid memory leak and unnecessary chdir to
  the original directory when exception has caused in changing
  direcotry or within block.  thanks to Johan Holmberg
  <holmberg@iar.se> [ruby-core:03446]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-18 06:56:38 +00:00
matz
ecf157699d * io.c (rb_io_reopen): should clear allocated OpenFile. pointed
out by Guy Decoux. [ruby-core:03288]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-17 08:31:02 +00:00
matz
7f3bfeb579 * range.c (rb_range_beg_len): returns Qnil only when "beg" points
outside of a range.  No boundary check for "end".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-24 09:48:21 +00:00
usa
b97aa9b90e * string.c (rb_str_match): raise TypeError when both arguments are
strings. [ruby-dev:22869] (backported from HEAD)

* string.c (rb_str_match2): removed.

* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,
  wince/Makefile.sub (string.c): now not depend on version.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-07 06:54:40 +00:00
matz
44e45bf1dc * string.c (str_new4): should share shared instance if it already
exists.  [ruby-dev:23665]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-05 02:33:01 +00:00
matz
58f3410e53 * range.c (range_each_func): terminates loop if generating value
is same to @end.  [ruby-talk:100269]

* string.c (rb_str_new4): should not reuse frozen shared string if
  the original is not an instance of String. [ruby-talk:100193]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-14 16:35:30 +00:00
matz
2b5a14bf7c * eval.c (rb_eval): too many line trace call. (ruby-bugs PR#1320)
* numeric.c (flo_to_s): tweak output string based to preserve
  decimal point and to remove trailing zeros.  [ruby-talk:97891]

* string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM
  search.  [ruby-talk:97342]

* hash.c (rb_hash_equal): returns true if two hashes have same set
  of key-value set.  [ruby-talk:97559]

* hash.c (rb_hash_eql): returns true if two hashes are equal and
  have same default values.

* string.c (rb_str_equal): always returns true or false, never
  returns nil. [ruby-dev:23404]

* io.c (rb_io_reopen): should use rb_io_check_io().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-07 08:48:30 +00:00
nobu
da011c8311 * array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
process.c, re.c, string.c: typos in RDoc comments.  [ruby-core:02783]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-14 04:06:52 +00:00
matz
849bc0234a * eval.c (top_include): include in the wrapped load is done for
the wrapper, not for a singleton class for wrapped main.
  [ruby-dev:23305]

* bignum.c (rb_big_eq): use temporary double variable to save the
  result (internal float register may be bigger than 64 bits, for
  example, 80 bits on x86).  [ruby-dev:23311]

* eval.c (block_pass): should generate unique identifier of the
  pushing block.  [ruby-talk:96363]

* ext/socket/socket.c (make_hostent): fix memory leak, based on
  the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-05 07:45:32 +00:00
matz
525aa2dab6 * eval.c (rb_yield_0): should not re-submit TAG_BREAK if this
yield is not break destination. [ruby-dev:23197]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-15 02:33:03 +00:00
akira
19365eb157 * io.c, re.c, string.c, time.c: fixed up positions of RDocs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-19 12:54:21 +00:00
dave
e8c8800740 Add RDoc for kernel functions, and tidy up
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-30 16:38:32 +00:00
usa
892e443cc8 * string.c (rb_str_update): don't return any value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-25 13:41:06 +00:00
matz
36163224f4 * string.c (rb_str_update): call rb_str_modify().
* eval.c (search_required): search actual file name once when no
  extension specified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-25 08:48:14 +00:00
nobu
a503181049 * string.c (rb_str_update): get rid of SEGV at just allocated String.
[ruby-core:01812]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-30 00:35:28 +00:00
usa
81160e93c9 * string.c: add #include "version.h". this file still depends on it.
* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,
  wince/Makefile.sub: add version.h dependency to string.c.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-05 02:15:27 +00:00
eban
da191c4547 * class.c, hash.c, string.c: remove #include "version.h".
* Makefile.in: remove needless version.h dependency.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-04 14:40:30 +00:00
matz
a4934a42cb * io.c (read_all): fptr->f may be NULL, if IO is closed in the
signal handler.

* io.c (io_read): ditto.

* string.c (get_pat): remove 1.8.0 warning code.

* string.c (rb_str_match): extend warning until 1.8.2.

* string.c (rb_str_match2): ditto.

* class.c (class_instance_method_list): remove 1.8.0 warnings.
  method_list now recurs.  [ruby-dev:21816]

* class.c (rb_obj_singleton_methods): ditto.

* array.c (rb_ary_select): remove select with block.
  [ruby-dev:21824]

* hash.c (rb_hash_select): ditto.

* hash.c (env_select): ditto.

* re.c (match_select): ditto.

* struct.c (rb_struct_select): ditto.

* process.c (check_uid_switch): remove duplicated error messages.

* process.c (check_gid_switch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-04 09:13:57 +00:00
knu
fe85bcd644 * string.c (rb_str_hash): Update the HASH_PERL alternative hash
algorithm in sync with Perl 5.8.

* st.c (strhash): Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-01 16:16:31 +00:00
matz
231d3e9654 * string.c (rb_str_upto): ("a"..."a").to_a should return [].
[ruby-core:01634]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 08:01:15 +00:00
matz
1184373d86 * string.c (str_new4): should not preserve FL_TAINT status in the
internal shared string. [ruby-dev:21601]

* string.c (rb_str_new4): ditto.

* eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.

* process.c: ditto. [ruby-dev:38521]

* lib/debug.rb (debug_command): should enter emacs mode when
  assigned any value to the environment variable "EMACS".
  On Meadow, (getenv "EMACS") is "meadow".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-13 13:05:24 +00:00
matz
c492b9b085 * eval.c (mark_frame_adj): need to adjust argv pointer if using
system's alloca. [ruby-core:01503]

* io.c (rb_f_gets): should call next_argv() before type check
  current_file. [ruby-list:38336]

* eval.c (proc_invoke): should retrieve retval when pcall is true.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-05 05:07:54 +00:00
matz
22b955d9bf * eval.c (rb_eval): *a = [1,2] now assigns [[1,2]] to a.
consistent with *a = [1], which set [[1]] to a.

* node.h: merge NODE_RESTARY to NODE_SPLAT.

* parse.y: rules simplified a bit by removing NODE_RESTARY.

* sample/test.rb: updated for new assignment behavior.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-27 19:43:50 +00:00
matz
7ff7bcbf9d * enum.c (inject_i): use rb_yield_values.
* enum.c (each_with_index_i): ditto.

* eval.c (rb_yield_splat): new function to call "yield *values".

* string.c (rb_str_scan): use rb_yield_splat().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-22 08:09:58 +00:00
matz
808aa5f318 * lib/shell/command-processor.rb (Shell::CommandProcessor::rmdir):
simple typo.

* string.c (str_new4): ptr may refer null_str.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-05 09:27:21 +00:00
matz
029e9449ce * ruby.c (proc_options): -F set compiled regular expression to $;.
[ruby-talk:77381]

* string.c (Init_String): no setter type check for $;


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 07:08:56 +00:00
matz
dbe85f1ef0 * string.c (rb_str_chomp_bang): defer rb_str_modify() to actual
modify point.  other methods, replace, tr, delete, squeeze,
  lstrip, and rstrip as well.

* string.c (rb_str_rstrip_bang): remove trailing '\0' at the end
  of string.

* string.c (rb_str_lstrip_bang): do not strip '\0' from the left.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-27 17:20:29 +00:00
matz
e02b469de1 * eval.c (thgroup_add): no warning for terminated threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24 05:18:47 +00:00