patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys

Problem:    Side effects when using t_ti to enable modifyOtherKeys.
Solution:   Add t_TI and t_TE.
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 79debe3..133d0e9 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 8.1.  Last change: 2019 May 07
+*term.txt*      For Vim version 8.1.  Last change: 2019 Oct 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -80,14 +80,19 @@
 <
 						*raw-terminal-mode*
 For normal editing the terminal will be put into "raw" mode.  The strings
-defined with 't_ti' and 't_ks' will be sent to the terminal.  Normally this
-puts the terminal in a state where the termcap codes are valid and activates
-the cursor and function keys.  When Vim exits the terminal will be put back
-into the mode it was before Vim started.  The strings defined with 't_te' and
-'t_ke' will be sent to the terminal.  On the Amiga, with commands that execute
-an external command (e.g., "!!"), the terminal will be put into Normal mode
-for a moment.  This means that you can stop the output to the screen by
-hitting a printing key.  Output resumes when you hit <BS>.
+defined with 't_ti', 't_TI' and 't_ks' will be sent to the terminal.  Normally
+this puts the terminal in a state where the termcap codes are valid and
+activates the cursor and function keys.
+When Vim exits the terminal will be put back into the mode it was before Vim
+started.  The strings defined with 't_te', 't_TE' and 't_ke' will be sent to
+the terminal.  On the Amiga, with commands that execute an external command
+(e.g., "!!"), the terminal will be put into Normal mode for a moment.  This
+means that you can stop the output to the screen by hitting a printing key.
+Output resumes when you hit <BS>.
+
+Note: When 't_ti' is not empty, Vim assumes that it causes switching to the
+alternate screen.  This may slightly change what happens when executing a
+shell command or exiting Vim.  To avoid this use 't_TI' and 't_TE'.
 
 						*xterm-bracketed-paste*
 When the 't_BE' option is set then 't_BE' will be sent to the
@@ -297,8 +302,8 @@
 	t_se	standout end					*t_se* *'t_se'*
 	t_so	standout mode					*t_so* *'t_so'*
 	t_sr	scroll reverse (backward)			*t_sr* *'t_sr'*
-	t_te	out of "termcap" mode				*t_te* *'t_te'*
-	t_ti	put terminal in "termcap" mode			*t_ti* *'t_ti'*
+	t_te	end of "termcap" mode				*t_te* *'t_te'*
+	t_ti	put terminal into "termcap" mode		*t_ti* *'t_ti'*
 	t_ts	set window title start (to status line)		*t_ts* *'t_ts'*
 	t_ue	underline end					*t_ue* *'t_ue'*
 	t_us	underline mode					*t_us* *'t_us'*
@@ -359,6 +364,8 @@
 	t_RT	restore window title from stack			*t_RT* *'t_RT'*
 	t_Si	save icon text to stack				*t_Si* *'t_Si'*
 	t_Ri	restore icon text from stack			*t_Ri* *'t_Ri'*
+	t_TE	end of "raw" mode				*t_TE* *'t_TE'*
+	t_TI	put terminal into "raw" mode 			*t_TI* *'t_TI'*
 
 Some codes have a start, middle and end part.  The start and end are defined
 by the termcap option, the middle part is text.
diff --git a/src/optiondefs.h b/src/optiondefs.h
index 3745d07..47f17ed 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -2969,7 +2969,9 @@
     p_term("t_ST", T_CST)
     p_term("t_Te", T_STE)
     p_term("t_te", T_TE)
+    p_term("t_TE", T_CTE)
     p_term("t_ti", T_TI)
+    p_term("t_TI", T_CTI)
     p_term("t_Ts", T_STS)
     p_term("t_ts", T_TS)
     p_term("t_u7", T_U7)
diff --git a/src/term.c b/src/term.c
index e30506b..8ab5f42 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1624,6 +1624,7 @@
 			{KS_CM, "cm"}, {KS_SR, "sr"},
 			{KS_CRI,"RI"}, {KS_VB, "vb"}, {KS_KS, "ks"},
 			{KS_KE, "ke"}, {KS_TI, "ti"}, {KS_TE, "te"},
+			{KS_CTI, "TI"}, {KS_CTE, "TE"},
 			{KS_BC, "bc"}, {KS_CSB,"Sb"}, {KS_CSF,"Sf"},
 			{KS_CAB,"AB"}, {KS_CAF,"AF"}, {KS_LE, "le"},
 			{KS_ND, "nd"}, {KS_OP, "op"}, {KS_CRV, "RV"},
@@ -3462,6 +3463,7 @@
     if (full_screen && !termcap_active)
     {
 	out_str(T_TI);			/* start termcap mode */
+	out_str(T_CTI);			/* start "raw" mode */
 	out_str(T_KS);			/* start "keypad transmit" mode */
 	out_str(T_BE);			/* enable bracketed paste mode */
 	out_flush();
@@ -3517,6 +3519,7 @@
 	out_flush();
 	termcap_active = FALSE;
 	cursor_on();			/* just in case it is still off */
+	out_str(T_CTE);			/* stop "raw" mode */
 	out_str(T_TE);			/* stop termcap mode */
 	screen_start();			/* don't know where cursor is now */
 	out_flush();
diff --git a/src/term.h b/src/term.h
index 219a208..0791f46 100644
--- a/src/term.h
+++ b/src/term.h
@@ -65,7 +65,9 @@
     KS_KS,	/* put term in "keypad transmit" mode */
     KS_KE,	/* out of "keypad transmit" mode */
     KS_TI,	/* put terminal in termcap mode */
-    KS_TE,	/* out of termcap mode */
+    KS_CTI,	/* put terminal in "raw" mode */
+    KS_TE,	/* end of termcap mode */
+    KS_CTE,	/* end of "raw" mode */
     KS_BC,	/* backspace character (cursor left) */
     KS_CCS,	/* cur is relative to scroll region */
     KS_CCO,	/* number of colors */
@@ -164,7 +166,9 @@
 #define T_KS	(TERM_STR(KS_KS))	/* put term in "keypad transmit" mode */
 #define T_KE	(TERM_STR(KS_KE))	/* out of "keypad transmit" mode */
 #define T_TI	(TERM_STR(KS_TI))	/* put terminal in termcap mode */
-#define T_TE	(TERM_STR(KS_TE))	/* out of termcap mode */
+#define T_CTI	(TERM_STR(KS_CTI))	/* put terminal in "raw" mode */
+#define T_TE	(TERM_STR(KS_TE))	/* end of termcap mode */
+#define T_CTE	(TERM_STR(KS_CTE))	/* end of "raw" mode */
 #define T_BC	(TERM_STR(KS_BC))	/* backspace character */
 #define T_CCS	(TERM_STR(KS_CCS))	/* cur is relative to scroll region */
 #define T_CCO	(TERM_STR(KS_CCO))	/* number of colors */
diff --git a/src/version.c b/src/version.c
index 615d24e..8ad31a0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2144,
+/**/
     2143,
 /**/
     2142,