mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 13:37:12 +00:00
Merge branch 'obsd-master'
This commit is contained in:
60
utf8.c
60
utf8.c
@ -408,66 +408,6 @@ utf8_cstrwidth(const char *s)
|
||||
return (width);
|
||||
}
|
||||
|
||||
/* Trim UTF-8 string to width. Caller frees. */
|
||||
char *
|
||||
utf8_trimcstr(const char *s, u_int width)
|
||||
{
|
||||
struct utf8_data *tmp, *next;
|
||||
char *out;
|
||||
u_int at;
|
||||
|
||||
tmp = utf8_fromcstr(s);
|
||||
|
||||
at = 0;
|
||||
for (next = tmp; next->size != 0; next++) {
|
||||
if (at + next->width > width) {
|
||||
next->size = 0;
|
||||
break;
|
||||
}
|
||||
at += next->width;
|
||||
}
|
||||
|
||||
out = utf8_tocstr(tmp);
|
||||
free(tmp);
|
||||
return (out);
|
||||
}
|
||||
|
||||
/* Trim UTF-8 string to width. Caller frees. */
|
||||
char *
|
||||
utf8_rtrimcstr(const char *s, u_int width)
|
||||
{
|
||||
struct utf8_data *tmp, *next, *end;
|
||||
char *out;
|
||||
u_int at;
|
||||
|
||||
tmp = utf8_fromcstr(s);
|
||||
|
||||
for (end = tmp; end->size != 0; end++)
|
||||
/* nothing */;
|
||||
if (end == tmp) {
|
||||
free(tmp);
|
||||
return (xstrdup(""));
|
||||
}
|
||||
next = end - 1;
|
||||
|
||||
at = 0;
|
||||
for (;;) {
|
||||
if (at + next->width > width) {
|
||||
next++;
|
||||
break;
|
||||
}
|
||||
at += next->width;
|
||||
|
||||
if (next == tmp)
|
||||
break;
|
||||
next--;
|
||||
}
|
||||
|
||||
out = utf8_tocstr(next);
|
||||
free(tmp);
|
||||
return (out);
|
||||
}
|
||||
|
||||
/* Pad UTF-8 string to width. Caller frees. */
|
||||
char *
|
||||
utf8_padcstr(const char *s, u_int width)
|
||||
|
Reference in New Issue
Block a user