diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-02-20 02:10:36 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-02-20 02:10:36 +0000 |
commit | 869a0bb90a901b11a8683d251f1b36e5a82729cd (patch) | |
tree | 0c97d8cd03236826aea1956588cb84eaa4d87377 /ext | |
parent | 9c1657f302d0d0e5b8eefa2a70f73bdb57d5fcd6 (diff) |
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@84 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r-- | ext/kconv/kconv.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ext/kconv/kconv.c b/ext/kconv/kconv.c index 6778afcfe6..011b8b6b61 100644 --- a/ext/kconv/kconv.c +++ b/ext/kconv/kconv.c @@ -1787,6 +1787,20 @@ kconv_kconv(argc, argv) if (NIL_P(out)) { out_code = _JIS; } + else if (TYPE(out) == T_STRING) { + switch (RSTRING(out)->ptr[0]) { + case 'E': case 'e': + out_code = _EUC; + break; + case 'S': case 's': + out_code = _SJIS; + break; + case 'J': case 'j': + default: + out_code = _JIS; + break; + } + } else { out_code = NUM2INT(out); if (out_code == _NOCONV) return (VALUE)src; @@ -1794,6 +1808,22 @@ kconv_kconv(argc, argv) if (NIL_P(in)) { in_code = _AUTO; } + else if (TYPE(in) == T_STRING) { + switch (RSTRING(in)->ptr[0]) { + case 'E': case 'e': + in_code = _EUC; + break; + case 'S': case 's': + in_code = _SJIS; + break; + case 'J': case 'j': + in_code = _JIS; + break; + default: + in_code = _AUTO; + break; + } + } else { in_code = NUM2INT(in); if (in_code == _NOCONV) return (VALUE)src; |