diff options
Diffstat (limited to 'prism_compile.c')
-rw-r--r-- | prism_compile.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/prism_compile.c b/prism_compile.c index e72ce4957f..1b453b0ef4 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -10534,6 +10534,9 @@ pm_parse_stdin_fgets(char *string, int size, void *stream) return string; } +// We need access to this function when we're done parsing stdin. +void rb_reset_argf_lineno(long n); + /** * Parse the source off STDIN and store the resulting scope node in the given * parse result struct. It is assumed that the parse result object is zeroed @@ -10552,6 +10555,10 @@ pm_parse_stdin(pm_parse_result_t *result) // free the buffer itself. pm_string_owned_init(&result->input, (uint8_t *) pm_buffer_value(&buffer), pm_buffer_length(&buffer)); + // When we're done parsing, we reset $. because we don't want the fact that + // we went through an IO object to be visible to the user. + rb_reset_argf_lineno(0); + return pm_parse_process(result, node); } |