This version counts all multibyte characters as 1 width, not taking into account double width cjk characters and zerowidth characters --- src/shared/util.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/shared/util.c b/src/shared/util.c index b791433..c6375e5 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -3310,14 +3310,14 @@ char *ascii_ellipsize_mem(const char *s, size_t old_length, size_t new_length, u continue; memcpy(r, s, x); - r[x] = '.'; - r[x+1] = '.'; - r[x+2] = '.'; + r[x] = 0xe2; + r[x+1] = 0x80; + r[x+2] = 0xa6; for (j=(x+3);(unsigned char)s[j] & 0x80;j++) continue; - memcpy(r + x + 3, + memcpy(r + x + 1, s + old_length - (new_length - j), new_length - j); -- 1.8.4.rc3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel