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!
This commit is contained in:
Franklin Wei
2017-04-28 19:48:36 -04:00
committed by Simon Tatham
parent 2d33375027
commit cefb84c2db
3 changed files with 21 additions and 1 deletions

View File

@ -1610,7 +1610,9 @@ void midend_serialise(midend *me,
#define wr(h,s) do { \
char hbuf[80]; \
char *str = (s); \
sprintf(hbuf, "%-8.8s:%d:", (h), (int)strlen(str)); \
char lbuf[9]; \
copy_left_justified(lbuf, sizeof(lbuf), h); \
sprintf(hbuf, "%s:%d:", lbuf, (int)strlen(str)); \
write(wctx, hbuf, strlen(hbuf)); \
write(wctx, str, strlen(str)); \
write(wctx, "\n", 1); \