From 6f03e49e68dfe0d9c0c7d49079c4383b26aca916 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 25 May 2020 18:57:24 +0000 Subject: Use the internal representation for UTF-8 keys instead of wchar_t and drop some code only needed for that. --- cmd-parse.y | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'cmd-parse.y') diff --git a/cmd-parse.y b/cmd-parse.y index 891f2289..9f36af7e 100644 --- a/cmd-parse.y +++ b/cmd-parse.y @@ -26,6 +26,7 @@ #include #include #include +#include #include "tmux.h" @@ -1251,10 +1252,9 @@ error: static int yylex_token_escape(char **buf, size_t *len) { - int ch, type, o2, o3; - u_int size, i, tmp; - char s[9]; - struct utf8_data ud; + int ch, type, o2, o3, mlen; + u_int size, i, tmp; + char s[9], m[MB_LEN_MAX]; ch = yylex_getc(); @@ -1339,11 +1339,12 @@ unicode: yyerror("invalid \\%c argument", type); return (0); } - if (utf8_split(tmp, &ud) != UTF8_DONE) { + mlen = wctomb(m, tmp); + if (mlen <= 0 || mlen > (int)sizeof m) { yyerror("invalid \\%c argument", type); return (0); } - yylex_append(buf, len, ud.data, ud.size); + yylex_append(buf, len, m, mlen); return (1); } -- cgit