From 0501bd1325339e0579a72e1e1162b2a28f707fed Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 22 Oct 2009 14:24:11 +0000 Subject: (svn r17842) -Fix: DrawStringMultiLine would in some corner case, top = bottom + 1, draw the string --- src/gfx.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/gfx.cpp') diff --git a/src/gfx.cpp b/src/gfx.cpp index 8b9c09360..ab40b9b53 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -791,6 +791,10 @@ int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str, int maxw = right - left + 1; int maxh = bottom - top + 1; + /* It makes no sense to even try if it can't be drawn anyway, or + * do we really want to support fonts of 0 or less pixels high? */ + if (maxh <= 0) return top; + char buffer[DRAW_STRING_BUFFER]; GetString(buffer, str, lastof(buffer)); @@ -800,7 +804,7 @@ int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str, int mt = GetCharacterHeight((FontSize)GB(tmp, 16, 16)); int total_height = (num + 1) * mt; - if (maxh != 0 && total_height > maxh) { + if (total_height > maxh) { /* Check there's room enough for at least one line. */ if (maxh < mt) return top; -- cgit v1.2.3-54-g00ecf