diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-20 16:37:13 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-20 16:37:13 +0000 |
commit | 95698ff2a414f6c212377ab321225bdcebd11a9f (patch) | |
tree | 5aa50c5dee2f50136fc1160c357a839a8f0bd861 /transcode.c | |
parent | c051ec7bc0987f137911072152f09961c0711922 (diff) | |
download | ruby-95698ff2a414f6c212377ab321225bdcebd11a9f.tar.gz |
* 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.c | 19 |
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); } |