From b7a0ce32da751b437b976b032e73281b9a56b509 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 11 Nov 2022 17:51:31 +0900 Subject: [Bug #19016] `SyntaxError` with parser error messages Raise a `SyntaxError` with the parser error message, in the case reading from a file instead of the `-e` option or standard input. So syntax_suggest can get the message from the caught error. --- ruby.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'ruby.c') diff --git a/ruby.c b/ruby.c index fac0865302..b29f29e1f7 100644 --- a/ruby.c +++ b/ruby.c @@ -2085,11 +2085,11 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt) ruby_set_argv(argc, argv); process_sflag(&opt->sflag); - rb_parser_set_context(parser, 0, TRUE); - if (opt->e_script) { VALUE progname = rb_progname; rb_encoding *eenc; + rb_parser_set_context(parser, 0, TRUE); + if (opt->src.enc.index >= 0) { eenc = rb_enc_from_index(opt->src.enc.index); } @@ -2114,6 +2114,7 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt) else { VALUE f; f = open_load_file(script_name, &opt->xflag); + rb_parser_set_context(parser, 0, f == rb_stdin); ast = load_file(parser, opt->script_name, f, 1, opt); } ruby_set_script_name(opt->script_name); -- cgit v1.2.1