From 13243e5ad15f5d0d259b4850199183fdf9572f46 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 21 Sep 2000 06:37:24 +0000 Subject: [PATCH] matz - net library bug (by me) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ eval.c | 3 ++- lib/net/http.rb | 4 +--- lib/thwait.rb | 2 +- ruby.c | 1 + 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index fc8013ee8e0d80..61f18b226b65dc 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 6c092714cf7a86..f42c86cec23e18 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 65cd5a9937d916..447e88c992a837 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -350,13 +350,11 @@ def connecting( u_header, ublock ) @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 8003f0d3c78ff0..3c170093100c39 100644 --- a/lib/thwait.rb +++ b/lib/thwait.rb @@ -96,7 +96,7 @@ def join(*threads) # 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 2bd485a6c265c2..ddff163dbbf4ad 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) {