Mercurial > vim
diff src/os_win32.c @ 18064:8b4f9be5db73 v8.1.2027
patch 8.1.2027: MS-Windows: problem with ambiwidth characters
Commit: https://github.com/vim/vim/commit/57da69816872d53038e8a7e8dd4dc39a31192f0d
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Sep 13 22:30:11 2019 +0200
patch 8.1.2027: MS-Windows: problem with ambiwidth characters
Problem: MS-Windows: problem with ambiwidth characters.
Solution: handle ambiguous width characters in ConPTY on Windows 10 (1903).
(Nobuhiro Takasaki, closes #4411)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 13 Sep 2019 22:45:04 +0200 |
parents | 9544335db006 |
children | d683b2c82c00 |
line wrap: on
line diff
--- a/src/os_win32.c +++ b/src/os_win32.c @@ -186,6 +186,7 @@ static int win32_setattrs(char_u *name, static int win32_set_archive(char_u *name); static int conpty_working = 0; +static int conpty_type = 0; static int conpty_stable = 0; static void vtp_flag_init(); @@ -7249,9 +7250,25 @@ mch_setenv(char *var, char *value, int x /* * Support for pseudo-console (ConPTY) was added in windows 10 - * version 1809 (October 2018 update). However, that version is unstable. + * version 1809 (October 2018 update). */ #define CONPTY_FIRST_SUPPORT_BUILD MAKE_VER(10, 0, 17763) + +/* + * ConPTY differences between versions, need different logic. + * version 1903 (May 2019 update). + */ +#define CONPTY_1903_BUILD MAKE_VER(10, 0, 18362) + +/* + * Confirm until this version. Also the logic changes. + * insider preview. + */ +#define CONPTY_INSIDER_BUILD MAKE_VER(10, 0, 18898) + +/* + * Not stable now. + */ #define CONPTY_STABLE_BUILD MAKE_VER(10, 0, 32767) // T.B.D. static void @@ -7281,6 +7298,12 @@ vtp_flag_init(void) if (ver >= CONPTY_STABLE_BUILD) conpty_stable = 1; + if (ver <= CONPTY_INSIDER_BUILD) + conpty_type = 3; + if (ver <= CONPTY_1903_BUILD) + conpty_type = 2; + if (ver < CONPTY_FIRST_SUPPORT_BUILD) + conpty_type = 1; } #if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL) || defined(PROTO) @@ -7503,6 +7526,12 @@ has_conpty_working(void) } int +get_conpty_type(void) +{ + return conpty_type; +} + + int is_conpty_stable(void) { return conpty_stable;