From 8b804fb5894b6717de36c5c9c96f7fd29b14a864 Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 11 Oct 2016 07:11:40 +0000 Subject: Support UTF-8 entry into the command prompt. --- utf8.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'utf8.c') diff --git a/utf8.c b/utf8.c index eadefa11..5ab2127a 100644 --- a/utf8.c +++ b/utf8.c @@ -236,6 +236,33 @@ utf8_sanitize(const char *src) return (dst); } +/* Get UTF-8 buffer length. */ +size_t +utf8_strlen(const struct utf8_data *s) +{ + size_t i; + + for (i = 0; s[i].size != 0; i++) + /* nothing */; + return (i); +} + +/* Get UTF-8 string width. */ +u_int +utf8_strwidth(const struct utf8_data *s, ssize_t n) +{ + ssize_t i; + u_int width; + + width = 0; + for (i = 0; s[i].size != 0; i++) { + if (n != -1 && n == i) + break; + width += s[i].width; + } + return (width); +} + /* * Convert a string into a buffer of UTF-8 characters. Terminated by size == 0. * Caller frees. -- cgit