From 337895429257494f04d100a9d28c99ca013135d4 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Wed, 17 Jun 2015 22:58:24 +0430 Subject: [PATCH] led: read utf-8 characters in led_readchar() --- led.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/led.c b/led.c index 778c642..be70b16 100644 --- a/led.c +++ b/led.c @@ -183,7 +183,7 @@ static char *led_readchar(int c, char *kmap) { static char buf[8]; int c1, c2; - int i; + int i, n; if (c == TK_CTL('v')) { /* literal character */ buf[0] = term_read(); buf[1] = '\0'; @@ -201,6 +201,14 @@ static char *led_readchar(int c, char *kmap) return digraphs[i][1]; return NULL; } + if ((c & 0xc0) == 0xc0) { /* utf-8 character */ + buf[0] = c; + n = uc_len(buf); + for (i = 1; i < n; i++) + buf[i] = term_read(); + buf[n] = '\0'; + return buf; + } return kmap_map(kmap, c); } -- 2.11.4.GIT