summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/terminal.txt6
-rw-r--r--src/terminal.c21
-rw-r--r--src/version.c2
3 files changed, 15 insertions, 14 deletions
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 4b009d32f..42fe2c9d9 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -413,13 +413,13 @@ Just put the files somewhere in your PATH. You can set the 'winptydll' option
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
index 714cb2bcb..899d3b687 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -5620,10 +5620,8 @@ void (WINAPI *pDeleteProcThreadAttributeList)(LPPROC_THREAD_ATTRIBUTE_LIST);
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
index 4662831d4..8a7ab7f5b 100644
--- 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,