]> git.tdb.fi Git - libs/core.git/blobdiff - source/stringcodec/ascii.cpp
Add move semantics to Variant
[libs/core.git] / source / stringcodec / ascii.cpp
index cb6281ab83e1d862e0223d2197fe22ce6f136642..1d27561498f1de132fee1466e34e84868c66df75 100644 (file)
@@ -19,17 +19,17 @@ const char *translit_katakana[0x60]=
 }*/
 
 namespace Msp {
-namespace Codecs {
+namespace StringCodec {
 
-void Ascii::Encoder::encode_char(UnicodeChar ch, string &buf)
+void Ascii::Encoder::encode_char(unichar ch, string &buf)
 {
        if(ch<0 || ch>0x7F)
-               return error(ch, buf, "Can't express character in ASCII");
+               return error(ch, buf, invalid_character(ch, "ASCII"));
 
        buf += ch;
 }
 
-void Ascii::Encoder::transliterate(UnicodeChar ch, string &buf)
+void Ascii::Encoder::transliterate(unichar ch, string &buf)
 {
        if(ch>=0xC0 && ch<=0xC5)
                buf += 'A';
@@ -88,13 +88,13 @@ void Ascii::Encoder::transliterate(UnicodeChar ch, string &buf)
 }
 
 
-UnicodeChar Ascii::Decoder::decode_char(const string &str, string::const_iterator &i)
+unichar Ascii::Decoder::decode_char(const string &str, string::const_iterator &i)
 {
        if(i==str.end())
-               return error("No input");
+               return -1;
        else if(*i&0x80)
        {
-               UnicodeChar result = error("Undefined ASCII character");
+               unichar result = error(invalid_sequence(i, i+1, "undefined ASCII character"));
                ++i;
                return result;
        }
@@ -102,5 +102,5 @@ UnicodeChar Ascii::Decoder::decode_char(const string &str, string::const_iterato
                return *i++;
 }
 
-} // namespace Codecs
+} // namespace StringCodec
 } // namespace Msp