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(unichar, string &buf)
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;
unichar result;
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;