diff --git a/ChangeLog b/ChangeLog index fc8013ee8e..61f18b226b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 20 23:21:38 2000 Yukihiro Matsumoto + + * ruby.c (load_file): two Ctrl-D was required to stop ruby at the + beginning of stdin script read. + Wed Sep 20 14:01:45 2000 Yukihiro Matsumoto * eval.c (rb_provided): detect infnite load loop. diff --git a/eval.c b/eval.c index 6c092714cf..f42c86cec2 100644 --- a/eval.c +++ b/eval.c @@ -1880,6 +1880,7 @@ call_trace_func(event, file, line, self, id, klass) PUSH_FRAME(); *ruby_frame = *prev; ruby_frame->prev = prev; + ruby_frame->iter = 0; /* blocks not available anyway */ if (file) { ruby_frame->line = ruby_sourceline = line; @@ -6022,7 +6023,7 @@ proc_call(proc, args) volatile int orphan; volatile int safe = ruby_safe_level; - if (rb_block_given_p()) { + if (rb_block_given_p() && ruby_frame->last_func) { rb_warning("block for %s#%s is useless", rb_class2name(CLASS_OF(proc)), rb_id2name(ruby_frame->last_func)); diff --git a/lib/net/http.rb b/lib/net/http.rb index 65cd5a9937..447e88c992 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -350,13 +350,11 @@ module Net @socket.reopen end - yield( u_header ) + resp = yield( u_header ) if ublock then adapter = HTTPReadAdapter.new( @command ) ublock.call adapter resp = adapter.off - else - resp = @command.get_response end unless keep_alive? u_header, resp then diff --git a/lib/thwait.rb b/lib/thwait.rb index 8003f0d3c7..3c17009310 100644 --- a/lib/thwait.rb +++ b/lib/thwait.rb @@ -96,7 +96,7 @@ class ThreadsWait # adds thread(s) to join, no wait. def join_nowait(*threads) - @threads.concat threads + @threads.concat threads.flatten for th in threads Thread.start do th = th.join diff --git a/ruby.c b/ruby.c index 2bd485a6c2..ddff163dbb 100644 --- a/ruby.c +++ b/ruby.c @@ -816,6 +816,7 @@ load_file(fname, script) rb_io_ungetc(f, c); } require_libraries(); /* Why here? unnatural */ + if (NIL_P(c)) return; } rb_compile_file(fname, f, line_start); if (script && ruby__end__seen) {