aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/option.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r--src/nvim/option.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 9d3e02949e..591c8234c3 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -76,6 +76,9 @@
#include "nvim/undo.h"
#include "nvim/window.h"
#include "nvim/os/os.h"
+#ifdef WIN32
+# include "nvim/os/os_win_conpty.h"
+#endif
#include "nvim/api/private/helpers.h"
#include "nvim/os/input.h"
#include "nvim/os/lang.h"
@@ -310,6 +313,9 @@ static char *(p_scl_values[]) = { "yes", "no", "auto", "auto:1", "auto:2",
"auto:3", "auto:4", "auto:5", "auto:6", "auto:7", "auto:8", "auto:9",
"yes:1", "yes:2", "yes:3", "yes:4", "yes:5", "yes:6", "yes:7", "yes:8",
"yes:9", NULL };
+#ifdef WIN32
+static char *(p_twt_values[]) = { "conpty", "winpty", "", NULL };
+#endif
/// All possible flags for 'shm'.
static char_u SHM_ALL[] = {
@@ -3282,6 +3288,13 @@ ambw_end:
if (!parse_winhl_opt(curwin)) {
errmsg = e_invarg;
}
+#ifdef WIN32
+ } else if (varp == &p_twt) {
+ if (check_opt_strings(*varp, p_twt_values, false) != OK
+ || (!os_has_conpty_working() && STRCMP(*varp, "conpty") == 0)) {
+ errmsg = e_invarg;
+ }
+#endif
} else {
// Options that are a list of flags.
p = NULL;