-/* $Id$
-
-This file is part of libmspstrings
-Copyright © 2006-2007 Mikko Rasa
-Distributed under the LGPL
-*/
-
#include "windows1252.h"
using namespace std;
namespace Msp {
-namespace Codecs {
+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;
return result;
}
-} // namespace Codecs
+} // namespace StringCodec
} // namespace Msp