コード例 #1
0
ファイル: Str.cpp プロジェクト: BlueMagnificent/Urho3D
unsigned String::ByteOffsetUTF8(unsigned index) const
{
    unsigned byteOffset = 0;
    unsigned utfPos = 0;

    while (utfPos < index && byteOffset < length_)
    {
        NextUTF8Char(byteOffset);
        ++utfPos;
    }

    return byteOffset;
}
コード例 #2
0
ファイル: String.cpp プロジェクト: joewan/turso3d
size_t String::ByteOffsetUTF8(size_t index) const
{
    size_t byteOffset = 0;
    size_t utfPos = 0;
    
    while (utfPos < index && byteOffset < Length())
    {
        NextUTF8Char(byteOffset);
        ++utfPos;
    }
    
    return byteOffset;
}
コード例 #3
0
ファイル: Str.cpp プロジェクト: BlueMagnificent/Urho3D
String String::SubstringUTF8(unsigned pos) const
{
    unsigned utf8Length = LengthUTF8();
    unsigned byteOffset = ByteOffsetUTF8(pos);
    String ret;

    while (pos < utf8Length)
    {
        ret.AppendUTF8(NextUTF8Char(byteOffset));
        ++pos;
    }

    return ret;
}
コード例 #4
0
ファイル: String.cpp プロジェクト: joewan/turso3d
String String::SubstringUTF8(size_t pos) const
{
    size_t utf8Length = LengthUTF8();
    size_t byteOffset = ByteOffsetUTF8(pos);
    String ret;

    while (pos < utf8Length)
    {
        ret.AppendUTF8(NextUTF8Char(byteOffset));
        ++pos;
    }

    return ret;
}
コード例 #5
0
ファイル: Str.cpp プロジェクト: BlueMagnificent/Urho3D
void String::ReplaceUTF8(unsigned index, unsigned unicodeChar)
{
    unsigned utfPos = 0;
    unsigned byteOffset = 0;

    while (utfPos < index && byteOffset < length_)
    {
        NextUTF8Char(byteOffset);
        ++utfPos;
    }

    if (utfPos < index)
        return;

    unsigned beginCharPos = byteOffset;
    NextUTF8Char(byteOffset);

    char temp[7];
    char* dest = temp;
    EncodeUTF8(dest, unicodeChar);
    *dest = 0;

    Replace(beginCharPos, byteOffset - beginCharPos, temp, (unsigned)(dest - temp));
}
コード例 #6
0
ファイル: String.cpp プロジェクト: joewan/turso3d
void String::ReplaceUTF8(size_t index, unsigned unicodeChar)
{
    size_t utfPos = 0;
    size_t byteOffset = 0;
    
    while (utfPos < index && byteOffset < Length())
    {
        NextUTF8Char(byteOffset);
        ++utfPos;
    }
    
    if (utfPos < index)
        return;
    
    size_t beginCharPos = byteOffset;
    NextUTF8Char(byteOffset);
    
    char temp[7];
    char* dest = temp;
    EncodeUTF8(dest, unicodeChar);
    *dest = 0;
    
    Replace(beginCharPos, byteOffset - beginCharPos, temp, dest - temp);
}
コード例 #7
0
ファイル: Text.cpp プロジェクト: rokups/Urho3D
void Text::DecodeToUnicode()
{
    unicodeText_.clear();
    for (unsigned i = 0; i < text_.length();)
        unicodeText_.push_back(NextUTF8Char(text_, i));
}
コード例 #8
0
ファイル: Str.cpp プロジェクト: BlueMagnificent/Urho3D
unsigned String::AtUTF8(unsigned index) const
{
    unsigned byteOffset = ByteOffsetUTF8(index);
    return NextUTF8Char(byteOffset);
}
コード例 #9
0
ファイル: String.cpp プロジェクト: joewan/turso3d
unsigned String::AtUTF8(size_t index) const
{
    size_t byteOffset = ByteOffsetUTF8(index);
    return NextUTF8Char(byteOffset);
}