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/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 50ca376..0fc249c 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -5750,6 +5750,11 @@
 				(See |job_stop()| for the values)
 				only valid when "status" is "dead"
 
+		   Only in MS-Windows:
+		   "tty_type"	Type of virtual console in use.
+				Values are "winpty" or "conpty".
+				See 'termwintype'.
+
 		Without any arguments, returns a List with all Job objects.
 
 job_setoptions({job}, {options})			*job_setoptions()*
@@ -9469,10 +9474,8 @@
 		   "ansi_colors"     A list of 16 color names or hex codes
 				     defining the ANSI palette used in GUI
 				     color modes.  See |g:terminal_ansi_colors|.
-		   "term_mode"	     (MS-Windows only): Specify which pty to
-				     use:
-					"winpty": Use winpty
-					"conpty": Use ConPTY (if available)
+		   "tty_type"	     (MS-Windows only): Specify which pty to
+				     use.  See 'termwintype' for the values.
 
 		{only available when compiled with the |+terminal| feature}
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index c9e2b0b..4133420 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -8054,23 +8054,6 @@
 	Note that the "cterm" attributes are still used, not the "gui" ones.
 	NOTE: This option is reset when 'compatible' is set.
 
-						*'termmode'* *'tmod'*
-'termmode' 'tmod'	string  (default "")
-			local to window
-			{not in Vi, MS-Windows only}
-	Whether the window uses winpty or |ConPTY| as the virtual console.
-	When set before opening the terminal, it influences what pty is used.
-	When opening the terminal it will be set to the actually used pty.
-
-	Possible values are:
-	    ""		use ConPTY if possible, winpty otherwise
-	    "winpty"	use winpty, fail if not supported
-	    "conpty"	use |ConPTY|, fail if not supported
-
-	|ConPTY| support depends on the platform (Windows 10 October 2018
-	edition).  winpty support needs to be installed.  If neither is
-	supported then you cannot open a terminal window.
-
 						*'termwinscroll'* *'twsl'*
 'termwinscroll' 'twsl'	number	(default 10000)
 			local to buffer
@@ -8119,6 +8102,24 @@
 	the size of the terminal.  In that case the Vim window will be
 	adjusted to that size, if possible.
 
+						*'termwintype'* *'twt'*
+'termwintype' 'twt'	string  (default "")
+			global
+			{not in Vi}
+			{only available when compiled with the |terminal|
+			feature on MS-Windows}
+	Specify the virtual console (pty) used when opening the terminal
+	window.
+
+	Possible values are:
+	    ""		use ConPTY if possible, winpty otherwise
+	    "winpty"	use winpty, fail if not supported
+	    "conpty"	use |ConPTY|, fail if not supported
+
+	|ConPTY| support depends on the platform (Windows 10 October 2018
+	edition).  winpty support needs to be installed.  If neither is
+	supported then you cannot open a terminal window.
+
 						*'terse'* *'noterse'*
 'terse'			boolean	(default off)
 			global
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 03ac357..75f400f 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.1.  Last change: 2018 Apr 18
+*quickref.txt*  For Vim version 8.1.  Last change: 2019 Feb 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -930,6 +930,7 @@
 'termwinkey'	  'twk'	    key that precedes a Vim command in a terminal
 'termwinscroll'   'twsl'    max number of scrollback lines in a terminal window
 'termwinsize'	  'tws'	    size of a terminal window
+'termwintype'	  'twt'	    MS-Windows: type of pty to use for terminal window
 'terse'			    shorten some messages
 'textauto'	  'ta'	    obsolete, use 'fileformats'
 'textmode'	  'tx'	    obsolete, use 'fileformat'
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index de79ff0..4b009d3 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -228,8 +228,10 @@
 					for Python "++eof=exit()".  Special
 					codes can be used like with `:map`,
 					e.g. "<C-Z>" for CTRL-Z.
-			++winpty	Use winpty as the virtual console.
-			++conpty	Use |ConPTY| as the virtual console.
+			++type={pty}	(MS-Windows only): Use {pty} as the
+					virtual console.  See 'termwintype'
+					for the values.
+
 			If you want to use more options use the |term_start()|
 			function.
 			If you want to split the window vertically, use: >
@@ -416,8 +418,8 @@
 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 'termmode' to winpty (which
-you then must have instlled).
+characters. If you encounter any such issues, set 'termwintype' to "winpty"
+(which you then must have instlled).
 
 Environment variables are used to pass information to the running job:
     VIM_SERVERNAME	v:servername
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index de3cdfb..d929836 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2019 Jan 27
+" Last Change:	2019 Feb 08
 
 " If there already is an option window, jump to that one.
 let buf = bufnr('option-window')
@@ -503,6 +503,10 @@
   call <SID>OptionL("twk")
   call append("$", "termwinscroll\tmax number of lines to keep for scrollback in a terminal window")
   call append("$", "\t(local to window)")
+  if has('win32')
+    call append("$", "termwintype\ttype of pty to use for a terminal window")
+    call <SID>OptionG("twt", &twt)
+  endif
   call <SID>OptionL("twsl")
   if exists("&winptydll")
     call append("$", "winptydll\tname of the winpty dynamic library")