chiark / gitweb /
Nitpicks to the previous commit.
authorSimon Tatham <anakin@pobox.com>
Sun, 30 Apr 2017 17:40:41 +0000 (18:40 +0100)
committerSimon Tatham <anakin@pobox.com>
Sun, 30 Apr 2017 17:48:46 +0000 (18:48 +0100)
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.

misc.c

diff --git a/misc.c b/misc.c
index c7210165635e5749cbf6cd1f74a91eb17a7dc41a..c1a595fefa77a4dffa1b560f03f7d416e2ba52eb 100644 (file)
--- 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;
 }