summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--parse.y10
2 files changed, 11 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 7d83143ac2..6c8c2d7741 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Oct 29 11:35:04 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (rb_parser_append_print, rb_parser_while_loop): body node
+ can be empty. [ruby-dev:24628]
+
Fri Oct 29 10:00:30 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (ruby_cleanup): ruby_finalize_1 may cause exception,
diff --git a/parse.y b/parse.y
index d18c59b06b..123fa9e6a0 100644
--- a/parse.y
+++ b/parse.y
@@ -7771,9 +7771,10 @@ NODE*
rb_parser_append_print(node)
NODE *node;
{
- NODE *prelude = (nd_type(node) == NODE_PRELUDE) ? node : 0;
+ NODE *prelude = 0;
- if (prelude) {
+ if (node && (nd_type(node) == NODE_PRELUDE)) {
+ prelude = node;
node = node->nd_body;
}
node = block_append(node,
@@ -7791,9 +7792,10 @@ rb_parser_while_loop(node, chop, split)
NODE *node;
int chop, split;
{
- NODE *prelude = (nd_type(node) == NODE_PRELUDE) ? node : 0;
+ NODE *prelude = 0;
- if (prelude) {
+ if (node && (nd_type(node) == NODE_PRELUDE)) {
+ prelude = node;
node = node->nd_body;
}
if (split) {