chars: measure invalid sequences and unassigned codepoints more quickly
Invalid multibyte sequences get depicted with the Replacement Character, and unassigned codepoints are shown as if they were a space. Both have a width of one.
Этот коммит содержится в:
родитель
91fff2a2c8
Коммит
8686cb3d3d
@ -280,15 +280,13 @@ int mbwidth(const char *c)
|
|||||||
|
|
||||||
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
||||||
mbtowc_reset();
|
mbtowc_reset();
|
||||||
wc = bad_wchar;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
width = wcwidth(wc);
|
width = wcwidth(wc);
|
||||||
|
|
||||||
if (width == -1) {
|
if (width == -1)
|
||||||
wc = bad_wchar;
|
return 1;
|
||||||
width = wcwidth(wc);
|
|
||||||
}
|
|
||||||
|
|
||||||
return width;
|
return width;
|
||||||
} else
|
} else
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user