]> git.tdb.fi Git - libs/core.git/blobdiff - source/stringcodec/jisx0208.cpp
Add move semantics to Variant
[libs/core.git] / source / stringcodec / jisx0208.cpp
index d56ec33d22a2da43bc6ff8b8bc1d6af30e549706..df28a376c10ff9760aafcee0cb84acd294c8fdde 100644 (file)
@@ -9,10 +9,12 @@ namespace StringCodec {
 
 void JisX0208::Encoder::encode_char(unichar ucs, string &buf)
 {
-       unsigned short jis = ucs_to_jisx0208(ucs);
+       Kuten jis = ucs_to_jisx0208(ucs);
        if(jis)
        {
-               char jbuf[2] = {jis>>8, jis};
+               char jbuf[2];
+               jbuf[0] = jis.ku+0x20;
+               jbuf[1] = jis.ten+0x20;
                buf.append(jbuf, 2);
        }
        else
@@ -30,7 +32,7 @@ unichar JisX0208::Decoder::decode_char(const string &str, string::const_iterator
        if(i==str.end())
                return -1;
 
-       string::const_iterator j = i;
+       auto j = i;
        Kuten jis;
        jis.ku = *j++-0x20;
 
@@ -77,8 +79,8 @@ Kuten ucs_to_jisx0208(unichar c)
        Kuten result;
        if(ucs_to_jisx0208_table[i].ucs==static_cast<unsigned short>(c))
        {
-               result.ku = (ucs_to_jisx0208_table[i].jis>>8)+1;
-               result.ten = ucs_to_jisx0208_table[i].jis+1;
+               result.ku = (ucs_to_jisx0208_table[i].jis>>8);
+               result.ten = ucs_to_jisx0208_table[i].jis;
        }
 
        return result;