(svn r6404) -Fix: GetStringWidth failed to calculate correct string width if the string
authorDarkvater
Tue, 05 Sep 2006 23:02:31 +0000
changeset 4557 112872feb6fd
parent 4556 693f37c36c85
child 4558 657e73957b4b
(svn r6404) -Fix: GetStringWidth failed to calculate correct string width if the string
contained newlines.
gfx.c
--- a/gfx.c	Tue Sep 05 16:40:23 2006 +0000
+++ b/gfx.c	Tue Sep 05 23:02:31 2006 +0000
@@ -542,8 +542,10 @@
 int GetStringWidth(const char *str)
 {
 	FontSize size = _cur_fontsize;
-	int w = 0;
+	int w, max_w;
 	byte c;
+
+	w = max_w = 0;
 	for (c = *str; c != '\0'; c = *(++str)) {
 		if (c >= ASCII_LETTERSTART) {
 			w += GetCharacterWidth(size, c);
@@ -552,9 +554,11 @@
 			else if (c == ASCII_SETXY) str += 2;
 			else if (c == ASCII_TINYFONT) size = FS_SMALL;
 			else if (c == ASCII_BIGFONT) size = FS_LARGE;
+			else if (c == ASCII_NL && w > max_w) {max_w = w; w = 0;}
 		}
 	}
-	return w;
+
+	return max(w, max_w);
 }