From 0067f681176e02874dc083a0defb692c734f6866 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Fri, 4 Mar 2005 00:14:28 +0000 Subject: (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 --- misc_gui.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'misc_gui.c') 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; } -- cgit v1.2.3-54-g00ecf