Patch 8.1.2144
Problem: Side effects when using t_ti to enable modifyOtherKeys.
Solution: Add t_TI and t_TE.
Files: runtime/doc/term.txt, src/term.c, src/optiondefs.h, src/term.h,
*** ../vim-8.1.2143/runtime/doc/term.txt 2019-05-05 18:11:46.324590615 +0200
--- runtime/doc/term.txt 2019-10-12 20:53:35.382078182 +0200
***************
*** 80,93 ****
<
*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>.
*xterm-bracketed-paste*
When the 't_BE' option is set then 't_BE' will be sent to the
--- 80,98 ----
<
*raw-terminal-mode*
For normal editing the terminal will be put into "raw" mode. The strings
! 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
***************
*** 249,257 ****
appropriate option. For example: >
:set t_ce=^V^[[K (CTRL-V, <Esc>, [, K)
- {Vi: no terminal options. You have to exit Vi, edit the termcap entry and
- try again}
-
The options are listed below. The associated termcap code is always equal to
the last two characters of the option name. Only one termcap code is
required: Cursor motion, 't_cm'.
--- 254,259 ----
***************
*** 300,307 ****
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_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'*
--- 302,309 ----
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 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'*
***************
*** 362,367 ****
--- 364,371 ----
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.
*** ../vim-8.1.2143/src/term.c 2019-10-12 18:22:46.957511288 +0200
--- src/term.c 2019-10-12 20:58:01.977090430 +0200
***************
*** 1624,1629 ****
--- 1624,1630 ----
{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,3467 ****
--- 3463,3469 ----
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,3522 ****
--- 3519,3525 ----
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();
*** ../vim-8.1.2143/src/optiondefs.h 2019-09-28 19:04:06.997029566 +0200
--- src/optiondefs.h 2019-10-12 20:56:13.685493429 +0200
***************
*** 2969,2975 ****
--- 2969,2977 ----
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)
*** ../vim-8.1.2143/src/term.h 2018-08-07 22:30:26.666240863 +0200
--- src/term.h 2019-10-12 20:58:26.520998835 +0200
***************
*** 65,71 ****
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_BC, /* backspace character (cursor left) */
KS_CCS, /* cur is relative to scroll region */
KS_CCO, /* number of colors */
--- 65,73 ----
KS_KS, /* put term in "keypad transmit" mode */
KS_KE, /* out of "keypad transmit" mode */
KS_TI, /* put terminal in 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,170 ****
#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_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 */
--- 166,174 ----
#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_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 */
*** ../vim-8.1.2143/src/version.c 2019-10-12 20:17:24.609773293 +0200
--- src/version.c 2019-10-12 21:04:38.687600847 +0200
***************
*** 755,756 ****
--- 755,758 ----
{ /* Add new patch number below this line */
+ /**/
+ 2144,
/**/
--
Citizens are not allowed to attend a movie house or theater nor ride in a
public streetcar within at least four hours after eating garlic.
[real standing law in Indiana, United States of America]
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language --
http://www.Zimbu.org ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///