X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fstringcodec%2Fjisx0201.cpp;h=4c8cd4804901e0332a4b458f51bf2dbc79b27857;hp=f6a69ad2330cbb0160d55294215f864277bce2bf;hb=242a4a9abe1e1113b5eb39aa751aa054f696d7be;hpb=056dc68dfc606a2c14126a70321045d6d9f12e0e diff --git a/source/stringcodec/jisx0201.cpp b/source/stringcodec/jisx0201.cpp index f6a69ad..4c8cd48 100644 --- a/source/stringcodec/jisx0201.cpp +++ b/source/stringcodec/jisx0201.cpp @@ -5,7 +5,7 @@ using namespace std; namespace Msp { namespace StringCodec { -void JisX0201::Encoder::encode_char(UnicodeChar ch, string &buf) +void JisX0201::Encoder::encode_char(unichar ch, string &buf) { if(ch>=0 && ch<=0x7F && ch!=0x5C && ch!=0x7E) buf += ch; @@ -16,22 +16,22 @@ void JisX0201::Encoder::encode_char(UnicodeChar ch, string &buf) else if(ch>=0xFF61 && ch<=0xFF9F) buf += ch-0xFEC0; else - error(ch, buf, "Can't express character in JIS X 0201"); + error(ch, buf, invalid_character(ch, "JIS X 0201")); } -void JisX0201::Encoder::transliterate(UnicodeChar, string &buf) +void JisX0201::Encoder::transliterate(unichar, string &buf) { buf += '?'; } -UnicodeChar JisX0201::Decoder::decode_char(const string &str, string::const_iterator &i) +unichar JisX0201::Decoder::decode_char(const string &str, string::const_iterator &i) { if(i==str.end()) - return error("No input"); + return -1; unsigned char ch = *i; - UnicodeChar result; + unichar result; if(ch==0x5C) result = 0xA5; else if(ch==0x7E) @@ -41,7 +41,7 @@ UnicodeChar JisX0201::Decoder::decode_char(const string &str, string::const_iter else if(ch>=0xA1 && ch<=0xDF) result = ch+0xFEC0; else - result = error("Undefined JIS X 0201 character"); + result = error(invalid_sequence(i, i+1, "undefined JIS X 0201 character")); ++i; return result;