]> granicus.if.org Git - procps-ng/commitdiff
top: make that 'make_str_utf8' function more efficient
authorJim Warner <james.warner@comcast.net>
Wed, 4 Oct 2017 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Fri, 6 Oct 2017 22:07:17 +0000 (09:07 +1100)
Upon reflection, there was absolutely no justification
for that call to strlen() which was then followed by a
call to snprintf(). The latter provides this needed #.

[ also make that 'delta' value a little more visible ]
[ instead of hiding it at the end of a its code line ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
top/top.c

index c6d38cf3ef842ea749ca794cb3beda41aad507d5..bd56ca74e128c929413ea30b7a4c4e5877e947d7 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -1449,9 +1449,7 @@ static inline const char *make_str_utf8 (const char *str, int width, int justr,
    static char buf[SCREENMAX];
    int delta = utf8_delta(str);
 
-   if (width >= (int)strlen(str) - delta)
-      snprintf(buf, sizeof(buf), "%s", str);
-   else {
+   if (width + delta <= snprintf(buf, sizeof(buf), "%s", str)) {
       snprintf(buf, sizeof(buf), "%.*s", utf8_embody(str, width - 1), str);
       delta = utf8_delta(buf);
       buf[width + delta - 1] = COLPLUSCH;