diff options
author | Kevin Newton <[email protected]> | 2024-07-19 09:06:48 -0400 |
---|---|---|
committer | Kevin Newton <[email protected]> | 2024-07-19 10:17:50 -0400 |
commit | 49cf042cd297cc6097065fb4d98879755ed0cec0 (patch) | |
tree | 085dfba5a8354fb97a95a6839e76eb660c83e65a /ruby.c | |
parent | 1e4c4fe478fccdc00565c609f6128172728d0f04 (diff) |
[PRISM] Define DATA constant when parsing stdin and __END__
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11207
Diffstat (limited to 'ruby.c')
-rw-r--r-- | ruby.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -2134,6 +2134,13 @@ prism_script(ruby_cmdline_options_t *opt, pm_parse_result_t *result) ruby_opt_init(opt); error = pm_parse_stdin(result); + + // If we found an __END__ marker, then we're going to define a global + // DATA constant that is a file object that can be read to read the + // contents after the marker. + if (NIL_P(error) && result->parser.data_loc.start != NULL) { + rb_define_global_const("DATA", rb_stdin); + } } else if (opt->e_script) { command_line |= PM_OPTIONS_COMMAND_LINE_E; |