forked from mirror/OpenTTD
(svn r9003) -Codechange: Introduce a function Utf8PrevCharLen that finds the starting character of an UTF-8 sequence from a given position and returns the length to the first UTF-8 encoding byte of that sequence.
This commit is contained in:
@@ -805,11 +805,7 @@ static void DelChar(Textbuf *tb, bool backspace)
|
||||
uint width;
|
||||
size_t len;
|
||||
|
||||
if (backspace) {
|
||||
do {
|
||||
tb->caretpos--;
|
||||
} while (IsUtf8Part(*(tb->buf + tb->caretpos)));
|
||||
}
|
||||
if (backspace) tb->caretpos -= Utf8PrevCharLen(tb->buf + tb->caretpos);
|
||||
|
||||
len = Utf8Decode(&c, tb->buf + tb->caretpos);
|
||||
width = GetCharacterWidth(FS_NORMAL, c);
|
||||
@@ -892,10 +888,7 @@ bool MoveTextBufferPos(Textbuf *tb, int navmode)
|
||||
if (tb->caretpos != 0) {
|
||||
WChar c;
|
||||
|
||||
do {
|
||||
tb->caretpos--;
|
||||
} while (IsUtf8Part(*(tb->buf + tb->caretpos)));
|
||||
|
||||
tb->caretpos -= Utf8PrevCharLen(tb->buf + tb->caretpos);
|
||||
Utf8Decode(&c, tb->buf + tb->caretpos);
|
||||
tb->caretxoffs -= GetCharacterWidth(FS_NORMAL, c);
|
||||
|
||||
|
Reference in New Issue
Block a user