aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-07-18 00:19:10 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-07-18 00:19:10 +0000
commit233221db60c32a626b7e7d06dae71a4c3f78d380 (patch)
tree8b1b0e5114418465bc35aa55abb0893716199162
parent73c8156360db536af7e64b062bda1bdd4454719d (diff)
downloadruby-233221db60c32a626b7e7d06dae71a4c3f78d380.tar.gz
* parse.y (rb_parser_append_print, rb_parser_while_loop): moved check
for node to the head. * ruby.c (proc_options): do nothing for -p/-n options if tree is null. submitted by Yusuke ENDOH <mame AT tsg.ne.jp> at [ruby-dev:31243]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--parse.y8
-rw-r--r--ruby.c4
3 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 0890173a62..aaf31fd7ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Jul 18 09:19:07 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (rb_parser_append_print, rb_parser_while_loop): moved check
+ for node to the head.
+
+ * ruby.c (proc_options): do nothing for -p/-n options if tree is null.
+ submitted by Yusuke ENDOH <mame AT tsg.ne.jp> at [ruby-dev:31243].
+
Wed Jul 18 08:47:09 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* time.c (time_succ): Time#succ should return a time object in the
diff --git a/parse.y b/parse.y
index fe73bc23b3..d31a2c82e4 100644
--- a/parse.y
+++ b/parse.y
@@ -8110,11 +8110,13 @@ rb_parser_append_print(VALUE vparser, NODE *node)
NODE *scope = node;
struct parser_params *parser;
+ if (!node) return node;
+
Data_Get_Struct(vparser, struct parser_params, parser);
node = node->nd_body;
- if (node && (nd_type(node) == NODE_PRELUDE)) {
+ if (nd_type(node) == NODE_PRELUDE) {
prelude = node;
node = node->nd_body;
}
@@ -8140,11 +8142,13 @@ rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
NODE *scope = node;
struct parser_params *parser;
+ if (!node) return node;
+
Data_Get_Struct(vparser, struct parser_params, parser);
node = node->nd_body;
- if (node && (nd_type(node) == NODE_PRELUDE)) {
+ if (nd_type(node) == NODE_PRELUDE) {
prelude = node;
node = node->nd_body;
}
diff --git a/ruby.c b/ruby.c
index aae62f27e0..89aeae9857 100644
--- a/ruby.c
+++ b/ruby.c
@@ -883,10 +883,10 @@ proc_options(int argc, char **argv)
FL_UNSET(rb_load_path, FL_TAINT);
}
- if (do_print) {
+ if (tree && do_print) {
tree = rb_parser_append_print(parser, tree);
}
- if (do_loop) {
+ if (tree && do_loop) {
tree = rb_parser_while_loop(parser, tree, do_line, do_split);
}