--- src/shared/util.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/shared/util.c b/src/shared/util.c index 1dde8af..9af99aa 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -3286,7 +3286,7 @@ int running_in_chroot(void) { } char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, unsigned percent) { - size_t x; + size_t x, j; char *r; assert(s); @@ -3305,13 +3305,20 @@ char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, unsigne if (x > new_length - 3) x = new_length - 3; + for (;s[x-1] > 127;x--) + continue; + memcpy(r, s, x); r[x] = '.'; r[x+1] = '.'; r[x+2] = '.'; + + for (j=(x+3);s[j] > 127;j++) + continue; + memcpy(r + x + 3, - s + old_length - (new_length - x - 3), - new_length - x - 3); + s + old_length - (new_length - j), + new_length - j); return r; } -- 1.8.4.rc3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel