From ed5ab2a95972b5ef588bdafab9f197e1dcf0c1df Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 4 May 2019 20:00:00 +0200 Subject: [PATCH] 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) --- src/getchar.c | 13 +++++++------ src/version.c | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/getchar.c b/src/getchar.c index 776e4e684..6a4c60f06 100644 --- 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 index 98c557363..a32d27cf2 100644 --- a/src/version.c +++ b/src/version.c @@ -767,6 +767,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1269, /**/ 1268, /**/ -- 2.40.0