Commit graph

978 commits

Author SHA1 Message Date
nobu
35008e2087 * array.c (rb_ary_join): non-nil separator must be converted to
String.  and separators' total length was wrong.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-15 15:56:08 +00:00
usa
a79f85e6cf * hash.c (ruby_setenv): remove USE_WIN32_RTL_ENV block since it's
obsoleted.

	* win32/win32.c, win32/win32.h: sort out #if 0 - #endif or others.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-14 18:41:46 +00:00
usa
d51279d862 * win32/win32.c (waitpid): fix wait count.
* win32/win32.c (poll_child_status): rename from wait_child().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 16:14:42 +00:00
eban
fffeb61121 * configure.in: do not override CC if set.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 10:53:20 +00:00
matz
9d59b0d1a1 tkutil needed to be updated
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 08:53:15 +00:00
matz
7422ccdd9e * signal.c (sighandle): should not re-register sighandler if
POSIX_SIGNAL is defined.

* eval.c (error_print): errat array may be empty.

* eval.c (rb_eval_cmd): should not upgrade safe level unless
  explicitly specified by argument newly added.

* signal.c (sig_trap): should not allow tainted trap closure.

* variable.c (rb_f_trace_var): should not allow trace_var on safe
  level higher than 3.

* variable.c (rb_f_trace_var): should not allow tainted trace
  closure.

* gc.c: do not use static stack until system stack overflows.

* eval.c (eval): should call Exception#exception instead of
  calling rb_exc_new3() directly.

* error.c (exc_exception): set "mesg" directly to the clone.  it
  might be better to set mesg via some method for flexibility.

* variable.c (cvar_override_check): should print original module
  name, if 'a' is T_ICLASS.

* parse.y (yylex): float '1_.0' should not be allowed.

* variable.c (var_getter): should care about var as Qfalse
  (ruby-bugs#PR199).

* array.c (cmpint): <=> or block for {min,max} may return bignum.

* array.c (sort_1): use rb_compint.

* array.c (sort_2): ditto.

* enum.c (min_ii): ditto.

* enum.c (min_ii): ditto.

* enum.c (max_i): ditto.

* enum.c (max_ii): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 08:19:52 +00:00
matz
948ff2456b * signal.c (sighandle): should not re-register sighandler if
POSIX_SIGNAL is defined.

* eval.c (error_print): errat array may be empty.

* eval.c (rb_eval_cmd): should not upgrade safe level unless
  explicitly specified by argument newly added.

* signal.c (sig_trap): should not allow tainted trap closure.

* variable.c (rb_f_trace_var): should not allow trace_var on safe
  level higher than 3.

* variable.c (rb_f_trace_var): should not allow tainted trace
  closure.

* gc.c: do not use static stack until system stack overflows.

* eval.c (eval): should call Exception#exception instead of
  calling rb_exc_new3() directly.

* error.c (exc_exception): set "mesg" directly to the clone.  it
  might be better to set mesg via some method for flexibility.

* variable.c (cvar_override_check): should print original module
  name, if 'a' is T_ICLASS.

* parse.y (yylex): float '1_.0' should not be allowed.

* variable.c (var_getter): should care about var as Qfalse
  (ruby-bugs#PR199).

* array.c (cmpint): <=> or block for {min,max} may return bignum.

* array.c (sort_1): use rb_compint.

* array.c (sort_2): ditto.

* enum.c (min_ii): ditto.

* enum.c (min_ii): ditto.

* enum.c (max_i): ditto.

* enum.c (max_ii): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 08:14:27 +00:00
usa
90ff4f01ab * win32/win32.c (mypopen): return error status instead of calling
rb_sys_fail().

	* win32/win32.c (do_spawn): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 07:50:20 +00:00
usa
beeda6eef0 2001-11-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 04:03:55 +00:00
usa
c5ca1bc929 * hash.c (envix): use GET_ENVIRON and FREE_ENVIRON to get environment
variables list.

	* hash.c (env_keys): ditto.

	* hash.c (env_each_key): ditto.

	* hash.c (env_values): ditto.

	* hash.c (env_keys): ditto.

	* hash.c (env_each_value): ditto.

	* hash.c (env_each): ditto.

	* hash.c (env_inspect): ditto.

	* hash.c (env_to_a): ditto.

	* hash.c (env_size): ditto.

	* hash.c (env_empty_p): ditto.

	* hash.c (env_has_value): ditto.

	* hash.c (env_index): ditto.

	* hash.c (env_to_hash): ditto.

	* win32/win32.c (win32_getenv): use static buffer.

	* win32/win32.c, win32/win32.h (win32_get_environ): get environment
	  variables list. [new]

	* win32/win32.c, win32/win32.h (win32_free_environ): free environment
	  variables list. [new]

	* win32/win32.c (do_spawn): use CreateChild() instead of calling
	  CreateProcess() directly. Original patches comes from Patrick Cheng.

	* win32/win32.c (mypopen): ditto.

	* win32/win32.c (mypclose): use rb_syswait() instead of waiting in this
	  function.

	* win32/win32.c (waitpid): use wait_child() instead of _cwait().

	* win32/win32.c (CreateChild): added. [new]

	* win32/win32.c (wait_child): added. [new]

	* win32/win32.c (FindFirstChildSlot): added. [new]

	* win32/win32.c (FindChildSlot): added. [new]

	* win32/win32.c (FindPipedChildSlot): added. [new]

	* win32/win32.c (CloseChildHandle): added. [new]

	* win32/win32.c (FindFreeChildSlot): added. [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 03:59:20 +00:00
usa
8fed738ffa * win32/config.status.in: make CFLAGS same as Makefile's one.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-09 04:52:54 +00:00
matz
49655c4295 too much backout
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-09 00:10:10 +00:00
nobu
76204d7a52 * eval.c (rb_trap_eval): avoid annoying warning with signal.
[ruby-talk:23225]

* eval.c (rb_call0): adjust caller source file/line while
  evaluating optional arguments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-08 12:42:39 +00:00
matz
a3d0d99530 eval.c fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-08 09:39:45 +00:00
matz
cf4451e8c2 * file.c (path_check_1): forgot to initialize 'p'.
* mkconfig.rb: use String#dump to generate Ruby string literal.

* range.c (range_eql): should override 'eql?'

* array.c (rb_ary_hash): should override 'hash' too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-08 09:21:59 +00:00
matz
dc98adf839 * process.c (security): always give warning for insecure PATH.
* dir.c (my_getcwd): do not rely on MAXPATHLEN.

* file.c (rb_file_s_readlink): ditto.

* file.c (path_check_1): ditto.

* eval.c (rb_yield_0): should not call rb_f_block_given_p().

* string.c (rb_str_chomp_bang): should terminate string by NUL.

* eval.c (rb_yield_0): better error message.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-08 06:43:14 +00:00
matz
ab827130d3 * process.c (security): always give warning for insecure PATH.
* dir.c (my_getcwd): do not rely on MAXPATHLEN.

* file.c (rb_file_s_readlink): ditto.

* file.c (path_check_1): ditto.

* eval.c (rb_yield_0): should not call rb_f_block_given_p().

* string.c (rb_str_chomp_bang): should terminate string by NUL.

* eval.c (rb_yield_0): better error message.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-07 09:05:08 +00:00
shugo
2fc66e2841 * lib/net/imap.rb (getquota_response): use astring for mailbox
names.
* lib/net/imap.rb (getacl_response): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-06 05:20:25 +00:00
keiju
edaf0477a5 * matrix.rb (Matrix#column_vectors, Matrix#row_vectors): ditto bug.
this bug report and fix by tsutomu@nucba.ac.jp.

* forwardable.rb: change raise to Kernel::raise


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-03 13:41:57 +00:00
matz
7ef9fbb35f gc patch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-02 07:20:58 +00:00
matz
bbb608ad79 * bignum.c (rb_big_aref): idx may be a Bignum.
* numeric.c (fix_aref): negative index must return zero.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-01 05:11:24 +00:00
matz
a313c30d9c * gc.c (gc_mark_children): should NOT treat last element of
structs and arrays specially.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-01 04:51:22 +00:00
matz
a8c4400d1a * eval.c (exec_under): should initialize ruby_frame->self;
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-31 08:00:18 +00:00
matz
c0fe73989d * eval.c (POP_VARS): should not set DVAR_DONT_RECYCLE if _old
ruby_vars is already force_recycled.

* gc.c (rb_gc): handles mark stack overflow.

* gc.c (PUSH_MARK): use static mark stack, no more recursion.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-31 06:53:22 +00:00
wakou
4c9362b74f * lib/cgi.rb: CGI::Cookie::parse(): Ignore duplicate keys caused by
Netscape bug.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-30 17:48:24 +00:00
usa
8d321e3fd4 * win32/mkexports.rb: follow the change of rb_io_puts().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-30 09:23:14 +00:00
matz
54d534f043 * string.c (rb_str_chomp_bang): do smart chomp if $/ == '\n'.
* io.c (rb_io_puts): don't treat Array specially.

* bignum.c (rb_big_cmp): should convert bignum to float.

* eval.c (rb_f_eval): can't modify untainted binding.

* regex.c (re_compile_pattern): should preverve p0 value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-30 08:43:28 +00:00
usa
864bc4f18b * intern.h (rb_protect_inspect): follow the change of array.c.
* eval.c (rb_exec_end_proc): follow the change of rb_protect().

	* eval.c (method_proc, umethod_proc, rb_catch): cast the first
	  parameter of rb_iterate() to avoid VC++ warning.

	* range.c (range_step): ditto.

	* ext/sdbm/init.c (fsdbm_update, fsdbm_replace): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-29 06:16:01 +00:00
matz
88abd791f5 * parse.y (str_extend): shuould allow interpolation of $-x.
* variable.c (rb_cvar_set): empty iv_tbl may cause infinite loop.

* variable.c (rb_cvar_get): ditto.

* variable.c (cvar_override_check): ditto.

* bignum.c (rb_big_eq): convert Bignum to Float, instead of
  reverse.

* time.c (time_localtime): getting tm should not be prohibited for
  frozen time objects.

* time.c (time_gmtime): ditto.

* version.c (Init_version): freeze RUBY_VERSION,
  RUBY_RELEASE_DATE, and RUBY_PLATFORM.

* file.c (Init_File): freeze File::SEPARATOR, ALT_SEPARATOR and
  PATH_SEPARATOR.

* file.c (rb_stat_cmp): should check operand type before calling
  get_stat().

* eval.c (rb_eval_cmd): should not invoke "call" with a block on
  any occasion.

* numeric.c (fix_aref): idx may be a Bignum.

* numeric.c (num_remainder): a bug in Numeric#remainder.

* eval.c (rb_exec_end_proc): END might be called within END
  block.

* class.c (rb_mod_clone): should not copy class name, since clone
  should remain anonymous.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-29 05:07:26 +00:00
nobu
429f7ed113 * eval.c (proc_invoke): fix self switching in Proc#call
(ruby-bugs-ja#PR108) and GC failure.  use Qundef instead of 0
  to direct not switching self.

* eval.c (call_trace_func): ditto.

* eval.c (call_end_proc): ditto.

* eval.c (proc_call): ditto.

* eval.c (proc_yield): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-22 16:28:51 +00:00
nobu
96baf2c092 * variable.c (rb_global_entry): reconstruct global variable
aliasing (sharing global_entry->var with other global_entry).

* variable.c (undef_getter): ditto.

* variable.c (undef_setter): ditto.

* variable.c (val_setter): ditto.

* variable.c (mark_global_entry): ditto.

* variable.c (rb_define_hooked_variable): ditto.

* variable.c (rb_f_trace_var): ditto.

* variable.c (remove_trace): ditto.

* variable.c (rb_f_untrace_var): ditto.

* variable.c (rb_gvar_get): ditto.

* variable.c (trace_en): ditto.

* variable.c (rb_gvar_set): ditto.

* variable.c (rb_gvar_defined): ditto.

* variable.c (rb_alias_variable): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-22 16:20:14 +00:00
eban
c4712cbc50 2001-10-22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-22 06:59:57 +00:00
matz
959d5febcf * class.c (rb_mod_clone): should not copy class name, since clone
should remain anonymous.

* eval.c (rb_call0): self in a block given to define_method now be
  switched to the receiver of the method.

* eval.c (proc_invoke): added new parameter to allow self
  switching.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-22 06:48:18 +00:00
nobu
d0129370f0 * variable.c (remove_trace): should not access already freed area.
* variable.c (rb_f_untrace_var): fix memory leak.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-21 13:22:54 +00:00
nobu
eaab0aa79a * marshal.c (w_uclass): cloned class is not user
class. (ruby-bugs-ja#PR103)

* marshal.c (r_object): Struct subclass couldn't
  load. (ruby-bugs-ja#PR104)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-19 14:32:51 +00:00
nobu
78592877b7 20011017
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-17 05:29:47 +00:00
nobu
e725a1a6ab * variable.c (alias_fixup): added. ad hoc support for ordinary
global variable aliasing. when original entry is set, make the
  alias to refer directly as possible.

* variable.c (alias_getter, alias_setter): ditto.

* variable.c (rb_alias_variable): ditto. and no need to mark alias
  variables.

* variable.c (rb_gvar_defined): refer the original entry of an alias.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-17 05:28:02 +00:00
nobu
7d9c2a6733 * eval.c (rb_f_missing): check stack level with rb_stack_check().
* eval.c (rb_call0): ditto.

* eval.c, intern.h (rb_stack_check): added. [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-16 15:17:10 +00:00
nobu
1c7cf852bd missing changelog.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-16 05:21:16 +00:00
matz
5f877e8431 * string.c (rb_str_index): wrong increment for non alphanumeric
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-16 03:27:23 +00:00
nobu
9be7984774 20011015
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-15 15:18:24 +00:00
nobu
093595801f * parse.y (yylex): disallow alpha-numeric and mbchar for
terminator of %string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-15 15:15:45 +00:00
eban
da23c37a31 2001-10-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-10 11:32:43 +00:00
matz
8098dd6c80 * file.c (rb_stat_clone): should copy internal data too.
* numeric.c (num_clone): Numeric should not be copied by clone.

* object.c (rb_obj_clone): should check immediate values.

* parse.y (command): `yield' should take command_args.

* parse.y (parse_quotedwords): %w(...) is not a string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-10 08:21:13 +00:00
matz
14129c8fa3 eval.c backout.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-09 14:56:15 +00:00
matz
9383505c40 * eval.c (rb_eval): NODE_MATCH3 was confusing left and right. sigh.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-09 09:46:42 +00:00
eban
681b54c0bd * process.c (Init_process): activate the case NT.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-09 09:42:47 +00:00
nobu
192b82bf4b * eval.c (thread_status_name): separated from
rb_thread_inspect(). return string expression for thread status.

* eval.c (rb_thread_status, rb_thread_inspect): use
  thread_status_name().

* eval.c (rb_thread_priority_set): return the priority not but
  self.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-09 08:19:46 +00:00
matz
ef52ffdf61 * marshal.c (w_unique): should not dump anonymous class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-05 06:30:42 +00:00
nobu
809a9c5b6d * eval.c (proc_s_new): revived.
* eval.c (Init_Proc): define Proc.new instead of Proc.allocate to
  inhibit from creating uninitialized Proc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-10-05 05:49:02 +00:00