vt: utf8: use mbtowc() instead of mbrtowc()

This is slightly faster, since we don't need to initialize an
mbstate_t struct (using mbrtowc() with a NULL-pointer for 'ps' also
works).

Also, avoid a branch by setting wc=0 and then ignoring the
result/error code from mbtowc().
This commit is contained in:
Daniel Eklöf 2020-05-31 12:41:35 +02:00
parent c38b9be6a4
commit d9028b2394
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

10
vt.c
View file

@ -512,14 +512,8 @@ action_utf8_entry(struct terminal *term, uint8_t c)
static void
action_utf8_print(struct terminal *term, uint8_t c)
{
/* Convert to wchar */
mbstate_t ps = {};
wchar_t wc;
size_t count = mbrtowc(
&wc, (const char *)term->vt.utf8.data, term->vt.utf8.idx, &ps);
if ((ssize_t)count < 0)
wc = 0;
wchar_t wc = 0;
mbtowc(&wc, (const char *)term->vt.utf8.data, term->vt.utf8.idx);
int width = wcwidth(wc);