namespace Msp {
namespace StringCodec {
-void Windows1252::Encoder::encode_char(UnicodeChar ch, string &buf)
+void Windows1252::Encoder::encode_char(unichar ch, string &buf)
{
if((ch>=0 && ch<=0x7F) || (ch>=0xA0 && ch<=0xFF))
buf += ch;
return;
}
- error(ch, buf, "Can't express character in Windows-1252");
+ error(ch, buf, invalid_character(ch, "Windows-1252"));
}
}
-void Windows1252::Encoder::transliterate(UnicodeChar, string &buf)
+void Windows1252::Encoder::transliterate(unichar, string &buf)
{
buf += '?';
}
-UnicodeChar Windows1252::Decoder::decode_char(const string &str, string::const_iterator &i)
+unichar Windows1252::Decoder::decode_char(const string &str, string::const_iterator &i)
{
if(i==str.end())
- return error("No input");
+ return -1;
int ch = static_cast<unsigned char>(*i);
- UnicodeChar result;
+ unichar result;
if(ch>=0x80 && ch<=0x9F)
{
result = table[ch-0x80];
if(result==0)
- result = error("Undefined Windows-1252 character");
+ result = error(invalid_sequence(i, i+1, "undefined Windows-1252 character"));
}
else
result = ch;