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.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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/trunk@7071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
size. [ruby-dev:24273]
* parse.y: make ruby parser reentrant. merge ripper parser to the
real one. this change makes ruby require bison.
* file.c (rb_file_truncate): clear stdio buffer before truncating
the file. [ruby-dev:24191]
* ext/digest/digest.c: use rb_obj_class() instead of CLASS_OF
which might return singleton class. [ruby-dev:24202]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-talk:110664]
* error.c (exc_equal): exceptions are equal if they share same
class, message and backtrace. [ruby-talk:110354]
* error.c (name_err_mesg_equal): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
use a session id as a filename.
* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.
* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use
Dir::tmpdir.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-list:39685]
* lib/cgi/session.rb: use LOCK_SH to read, and a few other
improvements. [ruby-core:02328]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-dev:22476]
* io.c (argf_eof): ARGF.eof? should not have any side effect.
[ruby-dev:22469]
* io.c (argf_each_byte): should return self. [ruby-dev:22465]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
use GetSystemWindowsDirectory(GetSystemDirectory), not GetTempPath.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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
* string.c (rb_str_rstrip_bang): new method.
* string.c (rb_str_associate): should consider STR_ASSOC too.
* eval.c (rb_undefined): do not recurse if method_missing is
undefined.
* process.c (proc_waitpid): now all arguments are optional.
* process.c (Init_process): waitpid is now alias to wait.
* process.c (Init_process): waitpid2 is now alias to wait2.
* process.c (rb_waitpid): made public.
* ext/pty/pty.c (pty_getpty): avoid disturbing SIGCHLD using
thread and rb_waitpid.
* process.c (proc_getpgrp): now takes no argument on all
platforms.
* process.c (proc_setpgrp): ditto.
* ext/socket/socket.c (sock_s_pack_sockaddr_in): added
Socket::pack_sockaddr_in(). [new]
* ext/socket/socket.c (sock_s_pack_sockaddr_un): added
Socket::pack_sockaddr_un(). [new]
* ext/socket/socket.c (sock_s_pack_sockaddr_in): added
Socket::unpack_sockaddr_in(). [new]
* ext/socket/socket.c (sock_s_pack_sockaddr_un): added
Socket::unpack_sockaddr_un(). [new]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
have same fileno.
* eval.c (rb_load): raise LocaJumpError if unexpected local jumps
appear during load.
* ext/socket/socket.c (bsock_close_read): don't call rb_thread_fd_close();
it's supposed to be called by io_io_close().
* ext/socket/socket.c (bsock_close_read): do not modify f and f2.
* ext/socket/socket.c (bsock_close_write): ditto.
* ext/socket/socket.c (sock_new): avoid dup(2) on sockets.
* parse.y (primary): preserve and clear in_single and in_def using
stack to prevent nested method errors in singleton class bodies.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rb_gc_call_finalizer_at_exit): clear klass member of
terminating object.
* eval.c (rb_call): raise exception for terminated object.
* bignum.c (bigdivrem): t2 might be too big for signed long; do
not use rb_int2big(), but rb_uint2big().
* error.c (rb_load_fail): new func to report LoadError.
* ruby.c (load_file): use rb_load_fail.
* eval.c (ruby_finalize): should enclosed by PUSH_TAG/POP_TAG.
* gc.c (rb_gc_mark): link 2 of NODE_IFUNC should not be explicitly
marked. it may contain non object pointer.
* re.c (reg_s_last_match): Regexp::last_match(nth) returns nth
substring of the match (alternative for $& and $<digit>).
* eval.c (rb_mod_define_method): wrong comparison for blocks.
* gc.c (id2ref): should handle Symbol too.
* gc.c (id2ref): should print original ptr value
* eval.c (rb_iterate): NODE_CFUNC does not protect its data
(nd_tval), so create new node NODE_IFUNC for iteration C
function.
* eval.c (rb_yield_0): use NODE_IFUNC.
* gc.c (rb_gc_mark): support NODE_IFUNC.
* gc.c (mem_error): prohibit recursive mem_error().
(ruby-bugs-ja:PR#36)
* eval.c (rb_thread_fd_writable): should not switch context if
rb_thread_critical is set.
* eval.c (rb_thread_wait_fd): ditto.
* eval.c (rb_thread_wait_for): ditto.
* eval.c (rb_thread_select): ditto.
* eval.c (rb_thread_join): join during critical section causes
deadlock.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e