From cefb84c2dbec914dc2733f776bb39d9055034c92 Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Fri, 28 Apr 2017 19:48:36 -0400 Subject: Work around non-compliant sprintf(). Rockbox's sprintf() lacks the ability to left-justify a string. Fixed by adding a copy_left_justfied() function to misc.c. This is a new version of this commit, as the previous version broke saving! --- misc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'misc.c') diff --git a/misc.c b/misc.c index fe41332..c721016 100644 --- a/misc.c +++ b/misc.c @@ -358,6 +358,19 @@ void draw_text_outline(drawing *dr, int x, int y, int fonttype, draw_text(dr, x, y+1, fonttype, fontsize, align, outline_colour, text); } draw_text(dr, x, y, fonttype, fontsize, align, text_colour, text); + +} + +/* kludge for non-compliant sprintf() */ +void copy_left_justified(char *buf, size_t sz, const char *str) +{ + memset(buf, ' ', sz - 1); + int len = strlen(str); + if(len <= sz - 1) + memcpy(buf, str, len); + else + fatal("overrun"); + buf[sz - 1] = 0; } /* vim: set shiftwidth=4 tabstop=8: */ -- cgit v1.1