diff options
author | S-H-GAMELINKS <gamelinks007@gmail.com> | 2022-11-04 19:06:16 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-12-02 01:30:01 +0900 |
commit | 7bc63d6f430422535f4dd460a98f3a90578e524c (patch) | |
tree | ebb5326a080beb585f92a12f2462deb2cab0ab48 /io.c | |
parent | 040e0c8d671f86b20e2b929b4077fcc74aa55074 (diff) |
Introduce argf_encoding function
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6672
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -13406,6 +13406,17 @@ global_argf_p(VALUE arg) return arg == argf; } +typedef VALUE (*argf_encoding_func)(VALUE io); + +static VALUE +argf_encoding(VALUE argf, argf_encoding_func func) +{ + if (!RTEST(ARGF.current_file)) { + return rb_enc_default_external(); + } + return func(rb_io_check_io(ARGF.current_file)); +} + /* * call-seq: * ARGF.external_encoding -> encoding @@ -13425,10 +13436,7 @@ global_argf_p(VALUE arg) static VALUE argf_external_encoding(VALUE argf) { - if (!RTEST(ARGF.current_file)) { - return rb_enc_from_encoding(rb_default_external_encoding()); - } - return rb_io_external_encoding(rb_io_check_io(ARGF.current_file)); + return argf_encoding(argf, rb_io_external_encoding); } /* @@ -13447,10 +13455,7 @@ argf_external_encoding(VALUE argf) static VALUE argf_internal_encoding(VALUE argf) { - if (!RTEST(ARGF.current_file)) { - return rb_enc_from_encoding(rb_default_external_encoding()); - } - return rb_io_internal_encoding(rb_io_check_io(ARGF.current_file)); + return argf_encoding(argf, rb_io_internal_encoding); } /* |