Mercurial > hg
changeset 944:aec71ebf98fa
Fix Meta + UTF-8 character
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Wed, 09 Aug 2006 20:26:06 +0200 |
parents | 9ac0d166a85b |
children | 17ef145f3326 |
files | mcabber/src/screen.c |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/screen.c Sat Jul 15 12:46:39 2006 +0200 +++ b/mcabber/src/screen.c Wed Aug 09 20:26:06 2006 +0200 @@ -2349,7 +2349,13 @@ kcode->value = wgetch(inputWnd); if (utf8_mode) { - ks[0] = kcode->value; + bool meta = (kcode->value == 27); + + if (meta) + ks[0] = wgetch(inputWnd); + else + ks[0] = kcode->value; + for (i = 0; i < MAX_KEYSEQ_LENGTH - 1; i++) { int match = match_utf8_keyseq(ks); if (match == -1) @@ -2357,6 +2363,8 @@ if (match > 0) { kcode->value = match; kcode->utf8 = 1; + if (meta) + kcode->mcode = MKEY_META; return; } ks[i + 1] = wgetch(inputWnd); @@ -2365,6 +2373,8 @@ } while (i > 0) ungetch(ks[i--]); + if (meta) + ungetch(ks[0]); memset(ks, 0, sizeof(ks)); } if (kcode->value != 27)