mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(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
This commit is contained in:
parent
5a24ba51c8
commit
4713b11ffe
@ -765,7 +765,7 @@ void SetHScrollCount(Window *w, int num)
|
|||||||
|
|
||||||
static void DelChar(Textbuf *tb)
|
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);
|
memmove(tb->buf + tb->caretpos, tb->buf + tb->caretpos + 1, tb->length - tb->caretpos);
|
||||||
tb->length--;
|
tb->length--;
|
||||||
}
|
}
|
||||||
@ -781,7 +781,7 @@ bool DeleteTextBufferChar(Textbuf *tb, int delmode)
|
|||||||
{
|
{
|
||||||
if (delmode == WKC_BACKSPACE && tb->caretpos != 0) {
|
if (delmode == WKC_BACKSPACE && tb->caretpos != 0) {
|
||||||
tb->caretpos--;
|
tb->caretpos--;
|
||||||
tb->caretxoffs -= GetCharacterWidth(tb->buf[tb->caretpos]);
|
tb->caretxoffs -= GetCharacterWidth((byte)tb->buf[tb->caretpos]);
|
||||||
|
|
||||||
DelChar(tb);
|
DelChar(tb);
|
||||||
return true;
|
return true;
|
||||||
@ -829,13 +829,13 @@ bool MoveTextBufferPos(Textbuf *tb, int navmode)
|
|||||||
case WKC_LEFT:
|
case WKC_LEFT:
|
||||||
if (tb->caretpos != 0) {
|
if (tb->caretpos != 0) {
|
||||||
tb->caretpos--;
|
tb->caretpos--;
|
||||||
tb->caretxoffs -= GetCharacterWidth(tb->buf[tb->caretpos]);
|
tb->caretxoffs -= GetCharacterWidth((byte)tb->buf[tb->caretpos]);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WKC_RIGHT:
|
case WKC_RIGHT:
|
||||||
if (tb->caretpos < tb->length) {
|
if (tb->caretpos < tb->length) {
|
||||||
tb->caretxoffs += GetCharacterWidth(tb->buf[tb->caretpos]);
|
tb->caretxoffs += GetCharacterWidth((byte)tb->buf[tb->caretpos]);
|
||||||
tb->caretpos++;
|
tb->caretpos++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -609,7 +609,8 @@ uint CheckTunnelBusy(uint tile, int *length)
|
|||||||
return (uint)-1;
|
return (uint)-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (length) *length = len;
|
if (length != NULL)
|
||||||
|
*length = len;
|
||||||
return tile;
|
return tile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user