]> git.tdb.fi Git - libs/core.git/blobdiff - source/jisx0201.cpp
More sophisticated error handling
[libs/core.git] / source / jisx0201.cpp
index 0a8804759aaca8d3d95ab674067f01b4fa442520..65abff25e8f35125cc297c12f9a235a7c239d077 100644 (file)
@@ -4,8 +4,10 @@ using namespace std;
 
 namespace Msp {
 
-void JisX0201::Encoder::encode_char(wchar_t c)
+void JisX0201::Encoder::encode_char(wchar_t c_)
 {
+       // Win32 has typedef unsigned short wchar_t
+       int c=c_;
        if(c>=0 && c<=0x7F && c!=0x5C && c!=0x7E)
                append(c);
        else if(c==0xA5)
@@ -15,7 +17,7 @@ void JisX0201::Encoder::encode_char(wchar_t c)
        else if(c>=0xFF61 && c<=0xFF9F)
                append(c-0xFEC0);
        else
-               throw CodecError("Can't express character in JIS X 0201");
+               error("Can't express character in JIS X 0201");
 }
 
 void JisX0201::Decoder::decode_char(const string &str, string::const_iterator &i)
@@ -33,7 +35,7 @@ void JisX0201::Decoder::decode_char(const string &str, string::const_iterator &i
        else if(c>=0xA1 && c<=0xDF)
                append(c+0xFEC0);
        else
-               throw CodecError("Invalid JIS X 0201 string (undefined character)");
+               error("Invalid JIS X 0201 string (undefined character)");
 }
 
 } // namespace Msp