diff --git a/utf8.c b/utf8.c index 458363b8..f43945e6 100644 --- a/utf8.c +++ b/utf8.c @@ -216,7 +216,11 @@ utf8_width(struct utf8_data *ud, int *width) { wchar_t wc; +#ifdef HAVE_UTF8PROC + switch (utf8proc_mbtowc(&wc, ud->data, ud->size)) { +#else switch (mbtowc(&wc, ud->data, ud->size)) { +#endif case -1: log_debug("UTF-8 %.*s, mbtowc() %d", (int)ud->size, ud->data, errno); @@ -225,7 +229,11 @@ utf8_width(struct utf8_data *ud, int *width) case 0: return (UTF8_ERROR); } +#ifdef HAVE_UTF8PROC + *width = utf8proc_wcwidth(wc); +#else *width = wcwidth(wc); +#endif if (*width >= 0 && *width <= 0xff) return (UTF8_DONE); log_debug("UTF-8 %.*s, wcwidth() %d", (int)ud->size, ud->data, *width);