From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33717) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VcBVj-0004Zz-Kb for qemu-devel@nongnu.org; Fri, 01 Nov 2013 05:59:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VcBVe-0004wJ-PU for qemu-devel@nongnu.org; Fri, 01 Nov 2013 05:59:23 -0400 Received: from isrv.corpit.ru ([86.62.121.231]:59466) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VcBVe-0004vC-Gi for qemu-devel@nongnu.org; Fri, 01 Nov 2013 05:59:18 -0400 Message-ID: <52737B75.9080004@msgid.tls.msk.ru> Date: Fri, 01 Nov 2013 13:59:17 +0400 From: Michael Tokarev MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [v2, 3/4] qemu-char: add support for U-prefixed symbols List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Krupa Cc: qemu-devel@nongnu.org, Anthony Liguori 16.10.2013 16:40, Jan Krupa wrote: > This patch adds support for Unicode symbols in keymap files. This > feature was already used in some keyboard layouts in QEMU generated > from XKB (e.g. Arabic) but it wasn't implemented in QEMU source code. > > There is no need for check of validity of the hex string after U character > because strtol returns 0 in case the conversion was unsuccessful. > > Signed-off-by: Jan Krupa > > --- > ui/keymaps.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/ui/keymaps.c b/ui/keymaps.c > index f373cc5..426a893 100644 > --- a/ui/keymaps.c > +++ b/ui/keymaps.c > @@ -33,6 +33,9 @@ static int get_keysym(const name2keysym_t *table, > if (!strcmp(p->name, name)) > return p->keysym; > } > + if (strlen(name) == 5 && name[0] == 'U') { > + return (int)strtol(name + 1, NULL, 16); > + } > return 0; > } > I still dislike this. People already complained that the keysyms should be case-insensitive. And there might be many words starting with "u" and of 5 chars long. How about this: Author: Jan Krupa Date: Wed Oct 16 14:40:05 2013 +0200 qemu-char: add support for U-prefixed symbols This patch adds support for Unicode symbols in keymap files. This feature was already used in some keyboard layouts in QEMU generated from XKB (e.g. Arabic) but it wasn't implemented in QEMU source code. There is no need for check of validity of the hex string after U character because strtol returns 0 in case the conversion was unsuccessful. Signed-off-by: Jan Krupa Signed-off-by: Michael Tokarev diff --git a/ui/keymaps.c b/ui/keymaps.c index f373cc5..80d658d 100644 --- a/ui/keymaps.c +++ b/ui/keymaps.c @@ -33,6 +33,12 @@ static int get_keysym(const name2keysym_t *table, if (!strcmp(p->name, name)) return p->keysym; } + if (name[0] == 'U' && strlen(name) == 5) { /* try unicode Uxxxx */ + char *end; + int ret = (int)strtoul(name + 1, &end, 16); + if (*end == '\0' && ret > 0) + return ret; + } return 0; } ? (I'm not sure about the author here, I just commit --amend'ed your change) Thanks, /mjt