summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJack Danger Canty <[email protected]>2013-08-13 09:50:38 -0700
committerJack Danger Canty <[email protected]>2013-08-13 09:53:52 -0700
commit2bf4952284b6b7cfac2b4bd91d459fc94f1ece91 (patch)
tree0e00e1ac43a6e890eb1c3834da6b2d0b78ed97e7
parent9827462e38f7dfb52e3d7bb61ef183e0cd9189ff (diff)
downloadmruby-2bf4952284b6b7cfac2b4bd91d459fc94f1ece91.tar.gz
mruby-2bf4952284b6b7cfac2b4bd91d459fc94f1ece91.zip
Adding line numbers to the output of mirb.
Before: > "hi" hi > d (mirb):1: undefined method 'd' for main (NoMethodError) > d (mirb):1: undefined method 'd' for main (NoMethodError) > "hi" hi > "#{'}" line 1: unterminated string meets end of file After > "hi" hi > d (mirb):2: undefined method 'd' for main (NoMethodError) > d (mirb):3: undefined method 'd' for main (NoMethodError) > "hi" hi > "#{'}" line 5: unterminated string meets end of file
-rw-r--r--mrbgems/mruby-bin-mirb/tools/mirb/mirb.c4
-rw-r--r--src/parse.y1
2 files changed, 3 insertions, 2 deletions
diff --git a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
index ecb65eecc..1c746db21 100644
--- a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
+++ b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
@@ -275,6 +275,7 @@ main(int argc, char **argv)
cxt = mrbc_context_new(mrb);
cxt->capture_errors = 1;
+ cxt->lineno = 1;
mrbc_filename(mrb, cxt, "(mirb)");
if (args.verbose) cxt->dump_result = 1;
@@ -346,7 +347,7 @@ main(int argc, char **argv)
parser = mrb_parser_new(mrb);
parser->s = ruby_code;
parser->send = ruby_code + strlen(ruby_code);
- parser->lineno = 1;
+ parser->lineno = cxt->lineno;
mrb_parser_parse(parser, cxt);
code_block_open = is_code_block_open(parser);
@@ -385,6 +386,7 @@ main(int argc, char **argv)
mrb_gc_arena_restore(mrb, ai);
}
mrb_parser_free(parser);
+ cxt->lineno++;
}
mrbc_context_free(mrb, cxt);
mrb_close(mrb);
diff --git a/src/parse.y b/src/parse.y
index c226a4e84..73d2d2758 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -5167,7 +5167,6 @@ mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s)
memcpy(p, s, len + 1);
c->filename = p;
- c->lineno = 1;
}
return c->filename;
}