summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--encoding.c9
-rw-r--r--test/ruby/test_encoding.rb5
2 files changed, 14 insertions, 0 deletions
diff --git a/encoding.c b/encoding.c
index 2d50f9f8ac..22a03d0ae4 100644
--- a/encoding.c
+++ b/encoding.c
@@ -313,6 +313,15 @@ rb_enc_replicate(const char *name, rb_encoding *encoding)
return idx;
}
+/*
+ * call-seq:
+ * enc.replicate(name) => encoding
+ *
+ * Returns a replicated encoding of _enc whose name is _name_.
+ * The new encoding should have the same byte structure of _enc_.
+ * If _name_ is used by another encoding, raise ArgumentError.
+ *
+ */
static VALUE
enc_replicate(VALUE encoding, VALUE name)
{
diff --git a/test/ruby/test_encoding.rb b/test/ruby/test_encoding.rb
index 44419242d2..600101a59c 100644
--- a/test/ruby/test_encoding.rb
+++ b/test/ruby/test_encoding.rb
@@ -51,6 +51,11 @@ class TestEncoding < Test::Unit::TestCase
end
end
+ def test_replicate
+ assert(Encoding::UTF_8.replicate('UTF-8-ANOTHER'))
+ assert(Encoding::ISO_2022_JP.replicate('ISO-2022-JP-ANOTHER'))
+ end
+
def test_dummy_p
assert_equal(true, Encoding::ISO_2022_JP.dummy?)
assert_equal(false, Encoding::UTF_8.dummy?)