summaryrefslogtreecommitdiff
path: root/transcode.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-20 16:37:13 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-20 16:37:13 +0000
commit95698ff2a414f6c212377ab321225bdcebd11a9f (patch)
tree5aa50c5dee2f50136fc1160c357a839a8f0bd861 /transcode.c
parentc051ec7bc0987f137911072152f09961c0711922 (diff)
* transcode.c, include/ruby/encodng.h (rb_str_transcode):
C API of encoding conversion for Ruby object. VALUE rb_str_transcode(VALUE str, VALUE to). * transcode.c (str_encode, str_encode_bang): rename from rb_tr_transcode or rb_str_transcode_bang. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/transcode.c b/transcode.c
index c6e6a3eded..60aee66d5d 100644
--- a/transcode.c
+++ b/transcode.c
@@ -397,7 +397,7 @@ str_transcode(int argc, VALUE *argv, VALUE *self)
*/
static VALUE
-rb_str_transcode_bang(int argc, VALUE *argv, VALUE str)
+str_encode_bang(int argc, VALUE *argv, VALUE str)
{
VALUE newstr = str;
int encidx = str_transcode(argc, argv, &newstr);
@@ -432,10 +432,19 @@ rb_str_transcode_bang(int argc, VALUE *argv, VALUE str)
*/
static VALUE
-rb_str_transcode(int argc, VALUE *argv, VALUE str)
+str_encode(int argc, VALUE *argv, VALUE str)
{
str = rb_str_dup(str);
- return rb_str_transcode_bang(argc, argv, str);
+ return str_encode_bang(argc, argv, str);
+}
+
+VALUE
+rb_str_transcode(VALUE str, VALUE to)
+{
+ int argc = 1;
+ VALUE argv = rb_ary_new2(1);
+ rb_ary_push(argv, to);
+ return str_encode(argc, &argv, str);
}
void
@@ -447,6 +456,6 @@ Init_transcode(void)
sym_invalid = ID2SYM(rb_intern("invalid"));
sym_ignore = ID2SYM(rb_intern("ignore"));
- rb_define_method(rb_cString, "encode", rb_str_transcode, -1);
- rb_define_method(rb_cString, "encode!", rb_str_transcode_bang, -1);
+ rb_define_method(rb_cString, "encode", str_encode, -1);
+ rb_define_method(rb_cString, "encode!", str_encode_bang, -1);
}