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 #3967)
diff --git a/src/terminal.c b/src/terminal.c
index 714cb2b..899d3b6 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -5620,10 +5620,8 @@
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 @@
{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 @@
{
if (verbose)
semsg(_(e_loadfunc), conpty_entry[i].name);
+ hKerneldll = NULL;
return FAIL;
}
}
- handled = TRUE;
- result = OK;
return OK;
}
@@ -6015,6 +6013,7 @@
{
if (verbose)
semsg(_(e_loadfunc), winpty_entry[i].name);
+ hWinPtyDLL = NULL;
return FAIL;
}
}