diff options
-rw-r--r-- | parse.y | 4 | ||||
-rw-r--r-- | ruby.c | 2 |
2 files changed, 5 insertions, 1 deletions
@@ -6015,6 +6015,10 @@ nextline(struct parser_params *p) if (p->eofp) return -1; + if (p->lex.pend > p->lex.pbeg && *(p->lex.pend-1) != '\n') { + goto end_of_input; + } + if (!p->lex.input || NIL_P(v = lex_getline(p))) { end_of_input: p->eofp = 1; @@ -2011,7 +2011,7 @@ load_file_internal(VALUE argp_v) else if (!NIL_P(c)) { rb_io_ungetbyte(f, c); } - else { + if (NIL_P(c)) { argp->f = f = Qnil; } if (!(opt->dump & ~DUMP_BIT(version_v))) { |