summaryrefslogtreecommitdiffstats
path: root/transcode.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-16 16:18:32 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-16 16:18:32 +0000
commitd2cf8bdd3268e5bec450a0a8014de160bc003f18 (patch)
treec31724cb127137b5cbae5d0cc3e2cf95bd2e2cab /transcode.c
parent5d43bbd26b818c19a63daae4956fdc4411fcdeb9 (diff)
downloadruby-d2cf8bdd3268e5bec450a0a8014de160bc003f18.tar.gz
ruby-d2cf8bdd3268e5bec450a0a8014de160bc003f18.tar.xz
ruby-d2cf8bdd3268e5bec450a0a8014de160bc003f18.zip
* transcode.c (enc_arg): raise exception when unknown encoding is
given. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/transcode.c b/transcode.c
index 5bd8e009c..f29e56411 100644
--- a/transcode.c
+++ b/transcode.c
@@ -2389,25 +2389,10 @@ rb_econv_open_opts(const char *source_encoding, const char *destination_encoding
static int
enc_arg(volatile VALUE *arg, const char **name_p, rb_encoding **enc_p)
{
- rb_encoding *enc;
- const char *n;
- int encidx;
- VALUE encval;
-
- if ((encidx = rb_to_encoding_index(encval = *arg)) < 0) {
- enc = NULL;
- encidx = 0;
- n = StringValueCStr(*arg);
- }
- else {
- enc = rb_enc_from_index(encidx);
- n = rb_enc_name(enc);
- }
-
- *name_p = n;
+ rb_encoding *enc = rb_to_encoding(*arg);
+ *name_p = rb_enc_name(enc);
*enc_p = enc;
-
- return encidx;
+ return rb_enc_to_index(enc);
}
static int