diff options
author | Darkvater <darkvater@openttd.org> | 2005-03-04 00:14:28 +0000 |
---|---|---|
committer | Darkvater <darkvater@openttd.org> | 2005-03-04 00:14:28 +0000 |
commit | 0067f681176e02874dc083a0defb692c734f6866 (patch) | |
tree | fcc6d97f369d597dda4bc87f2070d21459f9a495 /misc_gui.c | |
parent | 232fffffacd45b6ca718bad3c63c35701e46467c (diff) | |
download | openttd-0067f681176e02874dc083a0defb692c734f6866.tar.xz |
(svn r1923) - Fix: [ 1155696 ] Crash with german umlauts in station names. The width was not calculated using unsigned values, so all characters above 128 were "negative"
- Codechange: a more proper check for a null pointer in tunnelbridge_cmd.c should have gone in with the previous commit
Diffstat (limited to 'misc_gui.c')
-rw-r--r-- | misc_gui.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/misc_gui.c b/misc_gui.c index 68792f808..788aac809 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -765,7 +765,7 @@ void SetHScrollCount(Window *w, int num) static void DelChar(Textbuf *tb) { - tb->width -= GetCharacterWidth(tb->buf[tb->caretpos]); + tb->width -= GetCharacterWidth((byte)tb->buf[tb->caretpos]); memmove(tb->buf + tb->caretpos, tb->buf + tb->caretpos + 1, tb->length - tb->caretpos); tb->length--; } @@ -781,7 +781,7 @@ bool DeleteTextBufferChar(Textbuf *tb, int delmode) { if (delmode == WKC_BACKSPACE && tb->caretpos != 0) { tb->caretpos--; - tb->caretxoffs -= GetCharacterWidth(tb->buf[tb->caretpos]); + tb->caretxoffs -= GetCharacterWidth((byte)tb->buf[tb->caretpos]); DelChar(tb); return true; @@ -829,13 +829,13 @@ bool MoveTextBufferPos(Textbuf *tb, int navmode) case WKC_LEFT: if (tb->caretpos != 0) { tb->caretpos--; - tb->caretxoffs -= GetCharacterWidth(tb->buf[tb->caretpos]); + tb->caretxoffs -= GetCharacterWidth((byte)tb->buf[tb->caretpos]); return true; } break; case WKC_RIGHT: if (tb->caretpos < tb->length) { - tb->caretxoffs += GetCharacterWidth(tb->buf[tb->caretpos]); + tb->caretxoffs += GetCharacterWidth((byte)tb->buf[tb->caretpos]); tb->caretpos++; return true; } |