top: show that truncation indicator ('+') consistently

With a little luck, this should be the final tweak for
our support of extra wide characters. Currently, those
characters don't always display the '+' indicator when
they've been truncated. Now, it should always be seen.

[ plus it's done a tad more efficiently via snprintf ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2018-02-28 00:00:00 -06:00 committed by Craig Small
parent 90a4aee474
commit b2d7f620c0

View File

@ -1471,9 +1471,8 @@ static inline const char *make_str_utf8 (const char *str, int width, int justr,
int delta = utf8_delta(str); int delta = utf8_delta(str);
if (width + delta < snprintf(buf, sizeof(buf), "%s", str)) { if (width + delta < snprintf(buf, sizeof(buf), "%s", str)) {
snprintf(buf, sizeof(buf), "%.*s", utf8_embody(str, width - 1), str); snprintf(buf, sizeof(buf), "%.*s%c", utf8_embody(str, width-1), str, COLPLUSCH);
delta = utf8_delta(buf); delta = utf8_delta(buf);
buf[width + delta - 1] = COLPLUSCH;
AUTOX_COL(col); AUTOX_COL(col);
} }
return justify_pad(buf, width + delta, justr); return justify_pad(buf, width + delta, justr);