To: vim_dev@googlegroups.com Subject: Patch 8.1.2144 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 . *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 . ! ! 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, , [, 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 -- Bram@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 ///