trunk: TextEncoding fixes

This commit is contained in:
Marian Krivos
2012-02-09 15:15:39 +00:00
parent 4f6c5241c1
commit 7c3339c549
7 changed files with 59 additions and 10 deletions

View File

@@ -106,16 +106,16 @@ const TextEncoding::CharacterMap& Latin2Encoding::characterMap() const
int Latin2Encoding::convert(const unsigned char* bytes) const
{
return *bytes;
return _charMap[*bytes];
}
int Latin2Encoding::convert(int ch, unsigned char* bytes, int length) const
{
if (ch >= 0 && ch <= 255)
if (ch >= 0 && ch <= 255 && _charMap[ch] == ch)
{
if (bytes && length >= 1)
*bytes = ch;
*bytes = (unsigned char) ch;
return 1;
}
else switch (ch)
@@ -133,5 +133,19 @@ int Latin2Encoding::convert(int ch, unsigned char* bytes, int length) const
}
}
int Latin2Encoding::queryConvert(const unsigned char* bytes, int length) const
{
if (1 <= length)
return _charMap[*bytes];
else
return -1;
}
int Latin2Encoding::sequenceLength(const unsigned char* bytes, int length) const
{
return 1;
}
} // namespace Poco