From 1f46f9da43ae758db6f246fe5e02aa3c18262cbe Mon Sep 17 00:00:00 2001 From: "bernard.xiong@gmail.com" Date: Sun, 23 Jan 2011 13:54:59 +0000 Subject: [PATCH] fix length issue found by yermin. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1256 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- components/rtgui/common/font_bmp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/rtgui/common/font_bmp.c b/components/rtgui/common/font_bmp.c index 96b4609b9a..497e5b0a09 100644 --- a/components/rtgui/common/font_bmp.c +++ b/components/rtgui/common/font_bmp.c @@ -77,7 +77,8 @@ void rtgui_bitmap_font_draw_char(struct rtgui_font_bitmap* font, struct rtgui_dc } } -static void rtgui_bitmap_font_draw_text(struct rtgui_font* font, struct rtgui_dc* dc, const char* text, rt_ubase_t len, struct rtgui_rect* rect) +static void rtgui_bitmap_font_draw_text(struct rtgui_font* font, struct rtgui_dc* dc, + const char* text, rt_ubase_t len, struct rtgui_rect* rect) { rt_uint32_t length; struct rtgui_font_bitmap* bmp_font = (struct rtgui_font_bitmap*)(font->data); @@ -122,6 +123,7 @@ static void rtgui_bitmap_font_draw_text(struct rtgui_font* font, struct rtgui_dc #else while ((rect->x1 < rect->x2) && len) { + length = 0; while (((rt_uint8_t)*(text + length) < 0x80) && *(text + length)) length ++; if (length > 0) {