[PRISM] Reset $. when done reading STDIN

This commit is contained in:
Kevin Newton 2024-08-21 14:47:10 -04:00
Родитель f60499826f
Коммит 773cf883ac
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -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);
}