aboutsummaryrefslogtreecommitdiff
path: root/misc.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2017-04-30 18:40:41 +0100
committerSimon Tatham <anakin@pobox.com>2017-04-30 18:48:46 +0100
commit9972f35b27cadd6a49f2ec57f2ec07e4fa373341 (patch)
tree5acd792ae1d0863f015f4e210313ece5edf4350a /misc.c
parentcefb84c2dbec914dc2733f776bb39d9055034c92 (diff)
downloadpuzzles-9972f35b27cadd6a49f2ec57f2ec07e4fa373341.zip
puzzles-9972f35b27cadd6a49f2ec57f2ec07e4fa373341.tar.gz
puzzles-9972f35b27cadd6a49f2ec57f2ec07e4fa373341.tar.bz2
puzzles-9972f35b27cadd6a49f2ec57f2ec07e4fa373341.tar.xz
Nitpicks to the previous commit.
We enforce by assertion that the target buffer size is nonzero before subtracting 1 from it; the call to fatal() is replaced by another assert so that it will give clearer diagnostic information if it fails; the variable holding the return value of strlen should be size_t and its declaration should be in a C90-compatible location. Finally, the reason why the function needs to be exist is clarified.
Diffstat (limited to 'misc.c')
-rw-r--r--misc.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/misc.c b/misc.c
index c721016..c1a595f 100644
--- a/misc.c
+++ b/misc.c
@@ -361,15 +361,14 @@ void draw_text_outline(drawing *dr, int x, int y, int fonttype,
}
-/* kludge for non-compliant sprintf() */
+/* kludge for sprintf() in Rockbox not supporting "%-8.8s" */
void copy_left_justified(char *buf, size_t sz, const char *str)
{
+ size_t len = strlen(str);
+ assert(sz > 0);
memset(buf, ' ', sz - 1);
- int len = strlen(str);
- if(len <= sz - 1)
- memcpy(buf, str, len);
- else
- fatal("overrun");
+ assert(len <= sz - 1);
+ memcpy(buf, str, len);
buf[sz - 1] = 0;
}