mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.1.0909: MS-Windows: using ConPTY even though it is not stable
Problem: MS-Windows: using ConPTY even though it is not stable. Solution: When ConPTY version is unstable, prefer using winpty. (Ken Takata, closes #3949)
This commit is contained in:
@@ -8112,12 +8112,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
window.
|
window.
|
||||||
|
|
||||||
Possible values are:
|
Possible values are:
|
||||||
"" use ConPTY if possible, winpty otherwise
|
"" use ConPTY if it is stable, winpty otherwise
|
||||||
"winpty" use winpty, fail if not supported
|
"winpty" use winpty, fail if not supported
|
||||||
"conpty" use |ConPTY|, fail if not supported
|
"conpty" use |ConPTY|, fail if not supported
|
||||||
|
|
||||||
|ConPTY| support depends on the platform (Windows 10 October 2018
|
|ConPTY| support depends on the platform. Windows 10 October 2018
|
||||||
edition). winpty support needs to be installed. If neither is
|
Update is the first version that supports ConPTY, however it is still
|
||||||
|
considered unstable. ConPTY might become stable in the next release
|
||||||
|
of Windows 10. winpty support needs to be installed. If neither is
|
||||||
supported then you cannot open a terminal window.
|
supported then you cannot open a terminal window.
|
||||||
|
|
||||||
*'terse'* *'noterse'*
|
*'terse'* *'noterse'*
|
||||||
|
@@ -187,6 +187,8 @@ static int win32_setattrs(char_u *name, int attrs);
|
|||||||
static int win32_set_archive(char_u *name);
|
static int win32_set_archive(char_u *name);
|
||||||
|
|
||||||
static int vtp_working = 0;
|
static int vtp_working = 0;
|
||||||
|
static int conpty_working = 0;
|
||||||
|
static int conpty_stable = 0;
|
||||||
static void vtp_flag_init();
|
static void vtp_flag_init();
|
||||||
|
|
||||||
#ifndef FEAT_GUI_W32
|
#ifndef FEAT_GUI_W32
|
||||||
@@ -7638,9 +7640,10 @@ mch_setenv(char *var, char *value, int x)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for pseudo-console (ConPTY) was added in windows 10
|
* Support for pseudo-console (ConPTY) was added in windows 10
|
||||||
* version 1809 (October 2018 update).
|
* version 1809 (October 2018 update). However, that version is unstable.
|
||||||
*/
|
*/
|
||||||
#define CONPTY_FIRST_SUPPORT_BUILD MAKE_VER(10, 0, 17763)
|
#define CONPTY_FIRST_SUPPORT_BUILD MAKE_VER(10, 0, 17763)
|
||||||
|
#define CONPTY_STABLE_BUILD MAKE_VER(10, 0, 32767) // T.B.D.
|
||||||
|
|
||||||
static void
|
static void
|
||||||
vtp_flag_init(void)
|
vtp_flag_init(void)
|
||||||
@@ -7659,10 +7662,10 @@ vtp_flag_init(void)
|
|||||||
vtp_working = 0;
|
vtp_working = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_GUI_W32
|
|
||||||
if (ver >= CONPTY_FIRST_SUPPORT_BUILD)
|
if (ver >= CONPTY_FIRST_SUPPORT_BUILD)
|
||||||
vtp_working = 1;
|
conpty_working = 1;
|
||||||
#endif
|
if (ver >= CONPTY_STABLE_BUILD)
|
||||||
|
conpty_stable = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7878,3 +7881,15 @@ has_vtp_working(void)
|
|||||||
{
|
{
|
||||||
return vtp_working;
|
return vtp_working;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
has_conpty_working(void)
|
||||||
|
{
|
||||||
|
return conpty_working;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
is_conpty_stable(void)
|
||||||
|
{
|
||||||
|
return conpty_stable;
|
||||||
|
}
|
||||||
|
@@ -70,7 +70,9 @@ void set_alist_count(void);
|
|||||||
void fix_arg_enc(void);
|
void fix_arg_enc(void);
|
||||||
int mch_setenv(char *var, char *value, int x);
|
int mch_setenv(char *var, char *value, int x);
|
||||||
void control_console_color_rgb(void);
|
void control_console_color_rgb(void);
|
||||||
int has_vtp_working(void);
|
|
||||||
int use_vtp(void);
|
int use_vtp(void);
|
||||||
int is_term_win32(void);
|
int is_term_win32(void);
|
||||||
|
int has_vtp_working(void);
|
||||||
|
int has_conpty_working(void);
|
||||||
|
int is_conpty_stable(void);
|
||||||
/* vim: set ft=c : */
|
/* vim: set ft=c : */
|
||||||
|
@@ -5521,7 +5521,7 @@ dyn_conpty_init(int verbose)
|
|||||||
if (handled)
|
if (handled)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
if (!has_vtp_working())
|
if (!has_conpty_working())
|
||||||
{
|
{
|
||||||
handled = TRUE;
|
handled = TRUE;
|
||||||
result = FAIL;
|
result = FAIL;
|
||||||
@@ -6139,7 +6139,7 @@ term_and_job_init(
|
|||||||
|
|
||||||
if (tty_type == NUL)
|
if (tty_type == NUL)
|
||||||
{
|
{
|
||||||
if (has_conpty)
|
if (has_conpty && (is_conpty_stable() || !has_winpty))
|
||||||
use_conpty = TRUE;
|
use_conpty = TRUE;
|
||||||
else if (has_winpty)
|
else if (has_winpty)
|
||||||
use_winpty = TRUE;
|
use_winpty = TRUE;
|
||||||
|
@@ -783,6 +783,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
909,
|
||||||
/**/
|
/**/
|
||||||
908,
|
908,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user