(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:
Darkvater
2007-03-04 00:49:40 +00:00
parent ead8c82ab6
commit 0d643c624b
2 changed files with 24 additions and 9 deletions

View File

@@ -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);