# HG changeset patch # User Bram Moolenaar # Date 1550321107 -3600 # Node ID 63e71d195cee188b95f81025888fc35de169adad # Parent 88b3b6a90d3a54c7bdba96fb23b62fbc6d903d04 patch 8.1.0929: no error when requesting ConPTY but it's not available commit https://github.com/vim/vim/commit/5acd9872580a12ca1138275bf65d1cb9349e2a53 Author: Bram Moolenaar Date: Sat Feb 16 13:35:13 2019 +0100 patch 8.1.0929: no error when requesting ConPTY but it's not available Problem: No error when requesting ConPTY but it's not available. Solution: Add an error message. (Hirohito Higashi, closes https://github.com/vim/vim/issues/3967) diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -413,13 +413,13 @@ Just put the files somewhere in your PAT to point to the right file, if needed. If you have both the 32-bit and 64-bit version, rename to winpty32.dll and winpty64.dll to match the way Vim was build. - *ConPTY* + *ConPTY* *E982* On more recent versions of MS-Windows 10 (beginning with the "October 2018 Update"), winpty is no longer required. On those versions, |:terminal| will use Windows' built-in support for hosting terminal applications, "ConPTY". When ConPTY is in use, there may be rendering artifacts regarding ambiguous-width -characters. If you encounter any such issues, set 'termwintype' to "winpty" -(which you then must have instlled). +characters. If you encounter any such issues, install "winpty". Until the +ConPTY problems have been fixed "winpty" will be preferred. Environment variables are used to pass information to the running job: VIM_SERVERNAME v:servername diff --git a/src/terminal.c b/src/terminal.c --- a/src/terminal.c +++ b/src/terminal.c @@ -5620,10 +5620,8 @@ void (WINAPI *pDeleteProcThreadAttribute static int dyn_conpty_init(int verbose) { - static BOOL handled = FALSE; - static int result; - HMODULE hKerneldll; - int i; + static HMODULE hKerneldll = NULL; + int i; static struct { char *name; @@ -5642,16 +5640,17 @@ dyn_conpty_init(int verbose) {NULL, NULL} }; - if (handled) - return result; - if (!has_conpty_working()) { - handled = TRUE; - result = FAIL; + if (verbose) + emsg(_("E982: ConPTY is not available")); return FAIL; } + // No need to initialize twice. + if (hKerneldll) + return OK; + hKerneldll = vimLoadLib("kernel32.dll"); for (i = 0; conpty_entry[i].name != NULL && conpty_entry[i].ptr != NULL; ++i) @@ -5661,12 +5660,11 @@ dyn_conpty_init(int verbose) { if (verbose) semsg(_(e_loadfunc), conpty_entry[i].name); + hKerneldll = NULL; return FAIL; } } - handled = TRUE; - result = OK; return OK; } @@ -6015,6 +6013,7 @@ dyn_winpty_init(int verbose) { if (verbose) semsg(_(e_loadfunc), winpty_entry[i].name); + hWinPtyDLL = NULL; return FAIL; } } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -784,6 +784,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 929, +/**/ 928, /**/ 927,