# HG changeset patch # User Bram Moolenaar # Date 1556993704 -7200 # Node ID 5c6bd4431d98800bc79f51829d1121178059f0eb # Parent 9b8ed9cc40db1d2e6e5ea471c90b62766ad0a8ab patch 8.1.1269: MS-Windows GUI: multibyte chars with a 0x80 byte do not work commit https://github.com/vim/vim/commit/ed5ab2a95972b5ef588bdafab9f197e1dcf0c1df Author: Bram Moolenaar Date: Sat May 4 20:00:00 2019 +0200 patch 8.1.1269: MS-Windows GUI: multibyte chars with a 0x80 byte do not work Problem: MS-Windows GUI: multibyte chars with a 0x80 byte do not work when compiled with VIMDLL. Solution: Adjust the condition for fixing the input buffer. (Ken Takata, closes #4330) diff --git a/src/getchar.c b/src/getchar.c --- a/src/getchar.c +++ b/src/getchar.c @@ -3095,7 +3095,7 @@ inchar( /* * Fix typed characters for use by vgetc() and check_termcode(). - * buf[] must have room to triple the number of bytes! + * "buf[]" must have room to triple the number of bytes! * Returns the new length. */ int @@ -3135,14 +3135,15 @@ fix_input_buffer(char_u *buf, int len) else #endif if (p[0] == NUL || (p[0] == K_SPECIAL - /* timeout may generate K_CURSORHOLD */ + // timeout may generate K_CURSORHOLD && (i < 2 || p[1] != KS_EXTRA || p[2] != (int)KE_CURSORHOLD) #if defined(MSWIN) && (!defined(FEAT_GUI) || defined(VIMDLL)) + // Win32 console passes modifiers + && ( # ifdef VIMDLL - && !gui.in_use + gui.in_use || # endif - /* Win32 console passes modifiers */ - && (i < 2 || p[1] != KS_MODIFIER) + (i < 2 || p[1] != KS_MODIFIER)) #endif )) { @@ -3154,7 +3155,7 @@ fix_input_buffer(char_u *buf, int len) len += 2; } } - *p = NUL; /* add trailing NUL */ + *p = NUL; // add trailing NUL return len; } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1269, +/**/ 1268, /**/ 1267,