summaryrefslogtreecommitdiff
path: root/ruby.c
diff options
context:
space:
mode:
Diffstat (limited to 'ruby.c')
-rw-r--r--ruby.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ruby.c b/ruby.c
index 599b606e8a..2d85db9ef2 100644
--- a/ruby.c
+++ b/ruby.c
@@ -2155,7 +2155,11 @@ prism_script(ruby_cmdline_options_t *opt, pm_parse_result_t *result)
pm_options_t *options = &result->options;
pm_options_line_set(options, 1);
+ const bool read_stdin = (strcmp(opt->script, "-") == 0);
+ if (read_stdin) {
+ pm_options_encoding_set(options, rb_enc_name(rb_locale_encoding()));
+ }
if (opt->src.enc.name != 0) {
pm_options_encoding_set(options, StringValueCStr(opt->src.enc.name));
}
@@ -2163,7 +2167,7 @@ prism_script(ruby_cmdline_options_t *opt, pm_parse_result_t *result)
uint8_t command_line = prism_script_command_line(opt);
VALUE error;
- if (strcmp(opt->script, "-") == 0) {
+ if (read_stdin) {
pm_options_command_line_set(options, command_line);
pm_options_filepath_set(options, "-");
pm_options_shebang_callback_set(options, prism_script_shebang_callback, (void *) opt);