From 36128dc16f0c2f40c98836cd56343d6803d4f040 Mon Sep 17 00:00:00 2001 From: Harald Geyer Date: Tue, 1 Dec 2015 18:07:41 +0100 Subject: [PATCH] string widget: Allow multibyte characters Currently render_string() truncates the text after n bytes, where n is the number of characters from the start of the rendering position to the right margin. Since the API already requires drivers to take care of proper truncating, this is not necessary. Signed-off-by: Harald Geyer --- server/render.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/server/render.c b/server/render.c index 78119b4..92b5326 100644 --- a/server/render.c +++ b/server/render.c @@ -310,9 +310,6 @@ render_string(Widget *w, int left, int top, int right, int bottom, int fy) if ((w != NULL) && (w->text != NULL) && (w->x > 0) && (w->y > 0) && (w->y > fy) && (w->y <= bottom - top)) { - int length; - char str[BUFSIZE]; - /* * FIXME: Could be a bug here? w->x is recalculated (On first * call only? Is it preserved between calls?) and first @@ -320,10 +317,7 @@ render_string(Widget *w, int left, int top, int right, int bottom, int fy) * strings totally off-screen. Is this on purpose? (M. Dolze) */ w->x = min(w->x, right - left); - length = min(right - left - w->x + 1, sizeof(str)-1); - strncpy(str, w->text, length); - str[length] = '\0'; - drivers_string(w->x + left, w->y + top, str); + drivers_string(w->x + left, w->y + top, w->text); } return 0; }