diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-13 16:32:40 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-13 16:32:40 +0000 |
commit | 9c24fed339c77552223d5da339a1e58419bd0b71 (patch) | |
tree | 643eb5108a159edcf6791d2de80f4601348129b3 /string.c | |
parent | 04c290820c99e5b0daefa4c55d1a80abcfd17aab (diff) | |
download | ruby-9c24fed339c77552223d5da339a1e58419bd0b71.tar.gz |
* encoding.c (rb_cEncoding): new Encoding class.
* encoding.c (rb_to_encoding, rb_to_encoding_index): helper functions.
* encoding.c (rb_obj_encoding): return Encoding object now.
* gc.c (garbage_collect): mark Encoding objects.
* string.c (rb_str_force_encoding): accept Encoding object as well as
encoding name.
* include/ruby/encoding.h (rb_to_encoding_index, rb_to_encoding):
prototypes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 13 |
1 files changed, 2 insertions, 11 deletions
@@ -5112,19 +5112,10 @@ rb_str_setter(VALUE val, ID id, VALUE *var) */ static VALUE -rb_str_force_encoding(VALUE str, VALUE encname) +rb_str_force_encoding(VALUE str, VALUE enc) { - const char *name; - int idx; - - if (NIL_P(encname)) { - idx = 0; - } - else if ((idx = rb_enc_find_index(name = StringValueCStr(encname))) < 0) { - rb_raise(rb_eArgError, "invalid encoding name - %s", name); - } str_modifiable(str); - rb_enc_associate_index(str, idx); + rb_enc_associate(str, rb_to_encoding(enc)); return str; } |