@@ -857,6 +857,8 @@ static struct builtin_term builtin_termcaps[] =
857857 {(int )KS_8F , IF_EB ("\033[38;2;%lu;%lu;%lum" , ESC_STR "[38;2;%lu;%lu;%lum" )},
858858 {(int )KS_8B , IF_EB ("\033[48;2;%lu;%lu;%lum" , ESC_STR "[48;2;%lu;%lu;%lum" )},
859859# endif
860+ {(int )KS_CBE , IF_EB ("\033[?2004h" , ESC_STR "[?2004h" )},
861+ {(int )KS_CBD , IF_EB ("\033[?2004l" , ESC_STR "[?2004l" )},
860862
861863 {K_UP , IF_EB ("\033O*A" , ESC_STR "O*A" )},
862864 {K_DOWN , IF_EB ("\033O*B" , ESC_STR "O*B" )},
@@ -902,13 +904,15 @@ static struct builtin_term builtin_termcaps[] =
902904 {K_ZEND , IF_EB ("\033[8;*~" , ESC_STR "[8;*~" )},
903905 {K_PAGEUP , IF_EB ("\033[5;*~" , ESC_STR "[5;*~" )},
904906 {K_PAGEDOWN , IF_EB ("\033[6;*~" , ESC_STR "[6;*~" )},
905- {K_KPLUS , IF_EB ("\033O*k" , ESC_STR "O*k" )}, /* keypad plus */
906- {K_KMINUS , IF_EB ("\033O*m" , ESC_STR "O*m" )}, /* keypad minus */
907- {K_KDIVIDE , IF_EB ("\033O*o" , ESC_STR "O*o" )}, /* keypad / */
908- {K_KMULTIPLY , IF_EB ("\033O*j" , ESC_STR "O*j" )}, /* keypad * */
909- {K_KENTER , IF_EB ("\033O*M" , ESC_STR "O*M" )}, /* keypad Enter */
910- {K_KPOINT , IF_EB ("\033O*n" , ESC_STR "O*n" )}, /* keypad . */
911- {K_KDEL , IF_EB ("\033[3;*~" , ESC_STR "[3;*~" )}, /* keypad Del */
907+ {K_KPLUS , IF_EB ("\033O*k" , ESC_STR "O*k" )}, /* keypad plus */
908+ {K_KMINUS , IF_EB ("\033O*m" , ESC_STR "O*m" )}, /* keypad minus */
909+ {K_KDIVIDE , IF_EB ("\033O*o" , ESC_STR "O*o" )}, /* keypad / */
910+ {K_KMULTIPLY , IF_EB ("\033O*j" , ESC_STR "O*j" )}, /* keypad * */
911+ {K_KENTER , IF_EB ("\033O*M" , ESC_STR "O*M" )}, /* keypad Enter */
912+ {K_KPOINT , IF_EB ("\033O*n" , ESC_STR "O*n" )}, /* keypad . */
913+ {K_KDEL , IF_EB ("\033[3;*~" , ESC_STR "[3;*~" )}, /* keypad Del */
914+ {K_PS , IF_EB ("\033[200~" , ESC_STR "[200~" )}, /* paste start */
915+ {K_PE , IF_EB ("\033[201~" , ESC_STR "[201~" )}, /* paste end */
912916
913917 {BT_EXTRA_KEYS , "" },
914918 {TERMCAP2KEY ('k' , '0' ), IF_EB ("\033[10;*~" , ESC_STR "[10;*~" )}, /* F0 */
@@ -1224,6 +1228,8 @@ static struct builtin_term builtin_termcaps[] =
12241228 {K_KMULTIPLY , "[KMULTIPLY]" },
12251229 {K_KENTER , "[KENTER]" },
12261230 {K_KPOINT , "[KPOINT]" },
1231+ {K_PS , "[PASTE-START]" },
1232+ {K_PE , "[PASTE-END]" },
12271233 {K_K0 , "[K0]" },
12281234 {K_K1 , "[K1]" },
12291235 {K_K2 , "[K2]" },
@@ -1538,6 +1544,8 @@ set_termname(char_u *term)
15381544 {KS_CSI , "SI" }, {KS_CEI , "EI" },
15391545 {KS_U7 , "u7" }, {KS_RBG , "RB" },
15401546 {KS_8F , "8f" }, {KS_8B , "8b" },
1547+ {KS_CBE , "BE" }, {KS_CBD , "BD" },
1548+ {KS_CPS , "PS" }, {KS_CPE , "PE" },
15411549 {(enum SpecialKey )0 , NULL }
15421550 };
15431551
@@ -3140,6 +3148,7 @@ starttermcap(void)
31403148 {
31413149 out_str (T_TI ); /* start termcap mode */
31423150 out_str (T_KS ); /* start "keypad transmit" mode */
3151+ out_str (T_BE ); /* enable bracketed paste moe */
31433152 out_flush ();
31443153 termcap_active = TRUE;
31453154 screen_start (); /* don't know where cursor is now */
@@ -3189,6 +3198,7 @@ stoptermcap(void)
31893198 check_for_codes_from_term ();
31903199 }
31913200#endif
3201+ out_str (T_BD ); /* disable bracketed paste moe */
31923202 out_str (T_KE ); /* stop "keypad transmit" mode */
31933203 out_flush ();
31943204 termcap_active = FALSE;
0 commit comments