summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-09-21 06:37:24 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-09-21 06:37:24 +0000
commit13243e5ad15f5d0d259b4850199183fdf9572f46 (patch)
treeac85733cc87fdfccc5b1e1e0b20aae1de610cf5a
parentfc57cd59ffe2cca34d6bd48962f0be47eed0f509 (diff)
matz - net library bug (by me)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval.c3
-rw-r--r--lib/net/http.rb4
-rw-r--r--lib/thwait.rb2
-rw-r--r--ruby.c1
5 files changed, 10 insertions, 5 deletions
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 <matz@ruby-lang.org>
+
+ * 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 <matz@ruby-lang.org>
* 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) {