summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-02-16 13:35:13 +0100
committerBram Moolenaar <Bram@vim.org>2019-02-16 13:35:13 +0100
commit5acd9872580a12ca1138275bf65d1cb9349e2a53 (patch)
tree5a16f122fbc1383b13f654e3b86e15b09314ca70
parentd634024b90c7ae6ff08c1970646f1bca91f5611f (diff)
patch 8.1.0929: no error when requesting ConPTY but it's not availablev8.1.0929
Problem: No error when requesting ConPTY but it's not available. Solution: Add an error message. (Hirohito Higashi, closes #3967)
-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 4b009d32fb..42fe2c9d9d 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 714cb2bcbd..899d3b687a 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 4662831d46..8a7ab7f5bf 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,