Always use unicode ellipsis when ellipsizing
We were already unconditionally using the unicode character when the input string was not pure ASCII, leading to different behaviour in depending on the input string. systemd[1]: Starting printit.service. python3[19962]: foooooooooooooooooooooooooooooooooooo…oooo python3[19964]: fooąęoooooooooooooooooooooooooooooooo…oooo python3[19966]: fooąęoooooooooooooooooooooooooooooooo…ąęąę python3[19968]: fooąęoooooooooooooooooąęąęąęąęąęąęąęą…ąęąę systemd[1]: Started printit.service.
This commit is contained in:
@@ -443,7 +443,7 @@ static char *ascii_ellipsize_mem(const char *s, size_t old_length, size_t new_le
|
||||
if (old_length <= 3 || old_length <= new_length)
|
||||
return strndup(s, old_length);
|
||||
|
||||
r = new0(char, new_length+1);
|
||||
r = new0(char, new_length+3);
|
||||
if (!r)
|
||||
return NULL;
|
||||
|
||||
@@ -453,12 +453,12 @@ static char *ascii_ellipsize_mem(const char *s, size_t old_length, size_t new_le
|
||||
x = new_length - 3;
|
||||
|
||||
memcpy(r, s, x);
|
||||
r[x] = '.';
|
||||
r[x+1] = '.';
|
||||
r[x+2] = '.';
|
||||
r[x] = 0xe2; /* tri-dot ellipsis: … */
|
||||
r[x+1] = 0x80;
|
||||
r[x+2] = 0xa6;
|
||||
memcpy(r + x + 3,
|
||||
s + old_length - (new_length - x - 3),
|
||||
new_length - x - 3);
|
||||
s + old_length - (new_length - x - 1),
|
||||
new_length - x - 1);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user