summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-20 02:10:36 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-20 02:10:36 +0000
commit869a0bb90a901b11a8683d251f1b36e5a82729cd (patch)
tree0c97d8cd03236826aea1956588cb84eaa4d87377 /ext
parent9c1657f302d0d0e5b8eefa2a70f73bdb57d5fcd6 (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.c30
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;