From 62c15833531d85134783ba5e1d6cef8b7a4488da Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sat, 26 Feb 2022 16:16:40 +0900 Subject: [DOC] Place a non-US-ASCII document in a document-specific script --- doc/.document | 1 + doc/transcode.rb | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ transcode.c | 48 ------------------------------------------------ 3 files changed, 51 insertions(+), 48 deletions(-) create mode 100644 doc/transcode.rb diff --git a/doc/.document b/doc/.document index f35cd4769b..b52a2104a7 100644 --- a/doc/.document +++ b/doc/.document @@ -1,4 +1,5 @@ *.md +*.rb *.rdoc NEWS-* syntax diff --git a/doc/transcode.rb b/doc/transcode.rb new file mode 100644 index 0000000000..2c70a250e9 --- /dev/null +++ b/doc/transcode.rb @@ -0,0 +1,50 @@ +class String + # call-seq: + # encode(dst_encoding = Encoding.default_internal, **enc_opts) -> string + # encode(dst_encoding, src_encoding, **enc_opts) -> string + # + # Returns a copy of +self+ transcoded as determined by +dst_encoding+. + # By default, raises an exception if +self+ + # contains an invalid byte or a character not defined in +dst_encoding+; + # that behavior may be modified by encoding options; see below. + # + # With no arguments: + # + # - Uses the same encoding if Encoding.default_internal is +nil+ + # (the default): + # + # Encoding.default_internal # => nil + # s = "Ruby\x99".force_encoding('Windows-1252') + # s.encoding # => # + # s.bytes # => [82, 117, 98, 121, 153] + # t = s.encode # => "Ruby\x99" + # t.encoding # => # + # t.bytes # => [82, 117, 98, 121, 226, 132, 162] + # + # - Otherwise, uses the encoding Encoding.default_internal: + # + # Encoding.default_internal = 'UTF-8' + # t = s.encode # => "Ruby™" + # t.encoding # => # + # + # With only argument +dst_encoding+ given, uses that encoding: + # + # s = "Ruby\x99".force_encoding('Windows-1252') + # s.encoding # => # + # t = s.encode('UTF-8') # => "Ruby™" + # t.encoding # => # + # + # With arguments +dst_encoding+ and +src_encoding+ given, + # interprets +self+ using +src_encoding+, encodes the new string using +dst_encoding+: + # + # s = "Ruby\x99" + # t = s.encode('UTF-8', 'Windows-1252') # => "Ruby™" + # t.encoding # => # + # + # Optional keyword arguments +enc_opts+ specify encoding options; + # see {Encoding Options}[rdoc-ref:encoding.rdoc@Encoding+Options]. + def encode(dst_encoding = Encoding.default_internal, **enc_opts) + # Pseudo code + Builtin.str_transcode!(...) + end +end diff --git a/transcode.c b/transcode.c index 400ad13775..7a080875d6 100644 --- a/transcode.c +++ b/transcode.c @@ -2830,54 +2830,6 @@ str_encode_bang(int argc, VALUE *argv, VALUE str) static VALUE encoded_dup(VALUE newstr, VALUE str, int encidx); -/* - * call-seq: - * encode(dst_encoding = Encoding.default_internal, **enc_opts) -> string - * encode(dst_encoding, src_encoding, **enc_opts) -> string - * - * Returns a copy of +self+ transcoded as determined by +dst_encoding+. - * By default, raises an exception if +self+ - * contains an invalid byte or a character not defined in +dst_encoding+; - * that behavior may be modified by encoding options; see below. - * - * With no arguments: - * - * - Uses the same encoding if Encoding.default_internal is +nil+ - * (the default): - * - * Encoding.default_internal # => nil - * s = "Ruby\x99".force_encoding('Windows-1252') - * s.encoding # => # - * s.bytes # => [82, 117, 98, 121, 153] - * t = s.encode # => "Ruby\x99" - * t.encoding # => # - * t.bytes # => [82, 117, 98, 121, 226, 132, 162] - * - * - Otherwise, uses the encoding Encoding.default_internal: - * - * Encoding.default_internal = 'UTF-8' - * t = s.encode # => "Ruby™" - * t.encoding # => # - * - * With only argument +dst_encoding+ given, uses that encoding: - * - * s = "Ruby\x99".force_encoding('Windows-1252') - * s.encoding # => # - * t = s.encode('UTF-8') # => "Ruby™" - * t.encoding # => # - * - * With arguments +dst_encoding+ and +src_encoding+ given, - * interprets +self+ using +src_encoding+, encodes the new string using +dst_encoding+: - * - * s = "Ruby\x99" - * t = s.encode('UTF-8', 'Windows-1252') # => "Ruby™" - * t.encoding # => # - * - * Optional keyword arguments +enc_opts+ specify encoding options; - * see {Encoding Options}[rdoc-ref:encoding.rdoc@Encoding+Options]. - * - */ - static VALUE str_encode(int argc, VALUE *argv, VALUE str) { -- cgit v1.2.3