patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty
Problem: MS-Windows: inconsistent selection of winpty/conpty.
Solution: Name option 'termwintype', use ++type argument and "term_pty" for
term_start(). (Hirohito Higashi, closes #3915)
diff --git a/src/option.c b/src/option.c
index 77d1024..c8808be 100644
--- a/src/option.c
+++ b/src/option.c
@@ -253,7 +253,6 @@
# define PV_TWK OPT_WIN(WV_TWK)
# define PV_TWS OPT_WIN(WV_TWS)
# define PV_TWSL OPT_BUF(BV_TWSL)
-# define PV_TMOD OPT_WIN(WV_TMOD)
#endif
#ifdef FEAT_SIGNS
# define PV_SCL OPT_WIN(WV_SCL)
@@ -2701,15 +2700,6 @@
{(char_u *)FALSE, (char_u *)FALSE}
#endif
SCTX_INIT},
- {"termmode", "tmod", P_STRING|P_ALLOCED|P_VI_DEF,
-#ifdef FEAT_TERMINAL
- (char_u *)VAR_WIN, PV_TMOD,
- {(char_u *)"", (char_u *)NULL}
-#else
- (char_u *)NULL, PV_NONE,
- {(char_u *)NULL, (char_u *)0L}
-#endif
- SCTX_INIT},
{"termwinkey", "twk", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
#ifdef FEAT_TERMINAL
(char_u *)VAR_WIN, PV_TWK,
@@ -2737,6 +2727,15 @@
{(char_u *)NULL, (char_u *)0L}
#endif
SCTX_INIT},
+ {"termwintype", "twt", P_STRING|P_ALLOCED|P_VI_DEF,
+#if defined(WIN3264) && defined(FEAT_TERMINAL)
+ (char_u *)&p_twt, PV_NONE,
+ {(char_u *)"", (char_u *)NULL}
+#else
+ (char_u *)NULL, PV_NONE,
+ {(char_u *)NULL, (char_u *)0L}
+#endif
+ SCTX_INIT},
{"terse", NULL, P_BOOL|P_VI_DEF,
(char_u *)&p_terse, PV_NONE,
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
@@ -3218,8 +3217,8 @@
#ifdef FEAT_SIGNS
static char *(p_scl_values[]) = {"yes", "no", "auto", NULL};
#endif
-#ifdef FEAT_TERMINAL
-static char *(p_tmod_values[]) = {"winpty", "conpty", "", NULL};
+#if defined(WIN3264) && defined(FEAT_TERMINAL)
+static char *(p_twt_values[]) = {"winpty", "conpty", "", NULL};
#endif
static void set_options_default(int opt_flags);
@@ -7505,12 +7504,14 @@
errmsg = e_invarg;
}
}
- // 'termmode'
- else if (varp == &curwin->w_p_tmod)
+# if defined(WIN3264)
+ // 'termwintype'
+ else if (varp == &p_twt)
{
- if (check_opt_strings(*varp, p_tmod_values, FALSE) != OK)
+ if (check_opt_strings(*varp, p_twt_values, FALSE) != OK)
errmsg = e_invarg;
}
+# endif
#endif
#ifdef FEAT_VARTABS
@@ -10952,7 +10953,6 @@
case PV_TWK: return (char_u *)&(curwin->w_p_twk);
case PV_TWS: return (char_u *)&(curwin->w_p_tws);
case PV_TWSL: return (char_u *)&(curbuf->b_p_twsl);
- case PV_TMOD: return (char_u *)&(curwin->w_p_tmod);
#endif
case PV_AI: return (char_u *)&(curbuf->b_p_ai);
@@ -11153,7 +11153,6 @@
#ifdef FEAT_TERMINAL
to->wo_twk = vim_strsave(from->wo_twk);
to->wo_tws = vim_strsave(from->wo_tws);
- to->wo_tmod = vim_strsave(from->wo_tmod);
#endif
#ifdef FEAT_FOLDING
to->wo_fdc = from->wo_fdc;
@@ -11224,7 +11223,6 @@
#ifdef FEAT_TERMINAL
check_string_option(&wop->wo_twk);
check_string_option(&wop->wo_tws);
- check_string_option(&wop->wo_tmod);
#endif
#ifdef FEAT_LINEBREAK
check_string_option(&wop->wo_briopt);
@@ -11268,7 +11266,6 @@
#ifdef FEAT_TERMINAL
clear_string_option(&wop->wo_twk);
clear_string_option(&wop->wo_tws);
- clear_string_option(&wop->wo_tmod);
#endif
}