summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authortake_cheeze <[email protected]>2013-09-03 00:29:49 +0900
committertake_cheeze <[email protected]>2013-09-03 00:29:49 +0900
commitd606f9d33ffb6c79a7385b6e418e120e130300cf (patch)
tree015926a00f23e63d0ddf4eb5ec078b2feb443383
parent968f5d2a2788b64d0122da9f1c17c438c1079ce2 (diff)
downloadmruby-d606f9d33ffb6c79a7385b6e418e120e130300cf.tar.gz
mruby-d606f9d33ffb6c79a7385b6e418e120e130300cf.zip
fix line number after first file
-rw-r--r--src/parse.y8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parse.y b/src/parse.y
index bcc5fd35e..23f201d89 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -5037,7 +5037,7 @@ parser_init_cxt(parser_state *p, mrbc_context *cxt)
{
if (!cxt) return;
if (cxt->lineno) p->lineno = cxt->lineno;
- if (cxt->filename) p->filename = cxt->filename;
+ if (cxt->filename) mrb_parser_set_filename(p, cxt->filename);
if (cxt->syms) {
int i;
@@ -5136,6 +5136,10 @@ mrb_parser_new(mrb_state *mrb)
p->lex_strterm = NULL;
p->heredocs = p->parsing_heredoc = NULL;
+ p->current_filename_index = -1;
+ p->filename_table = NULL;
+ p->filename_table_length = 0;
+
return p;
}
@@ -5186,7 +5190,7 @@ mrb_parser_set_filename(struct mrb_parser_state* p, char const* f)
mrb_sym const sym = mrb_intern(p->mrb, f);
size_t len;
p->filename = mrb_sym2name_len(p->mrb, sym, &len);
- p->lineno = 1;
+ p->lineno = (p->filename_table_length > 0)? 0 : 1;
size_t i;
for(i = 0; i < p->filename_table_length; ++i) {