comparison src/ex_docmd.c @ 19271:ebeeb4b4a1fa v8.2.0194

patch 8.2.0194: some commands can cause problems in terminal popup Commit: https://github.com/vim/vim/commit/3c01c4a02897163996639f6f2604c68eab2bd18b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 1 23:04:24 2020 +0100 patch 8.2.0194: some commands can cause problems in terminal popup Problem: Some commands can cause problems in terminal popup. Solution: Disallow more commands.
author Bram Moolenaar <Bram@vim.org>
date Sat, 01 Feb 2020 23:15:03 +0100
parents a20c66f13a6e
children b6da81589f8c
comparison
equal deleted inserted replaced
19270:6eca0794f137 19271:ebeeb4b4a1fa
4631 * :[N]bwipeout[!] [N] [bufname] delete buffer really 4631 * :[N]bwipeout[!] [N] [bufname] delete buffer really
4632 */ 4632 */
4633 static void 4633 static void
4634 ex_bunload(exarg_T *eap) 4634 ex_bunload(exarg_T *eap)
4635 { 4635 {
4636 if (ERROR_IF_POPUP_WINDOW) 4636 if (ERROR_IF_ANY_POPUP_WINDOW)
4637 return; 4637 return;
4638 eap->errmsg = do_bufdel( 4638 eap->errmsg = do_bufdel(
4639 eap->cmdidx == CMD_bdelete ? DOBUF_DEL 4639 eap->cmdidx == CMD_bdelete ? DOBUF_DEL
4640 : eap->cmdidx == CMD_bwipeout ? DOBUF_WIPE 4640 : eap->cmdidx == CMD_bwipeout ? DOBUF_WIPE
4641 : DOBUF_UNLOAD, eap->arg, 4641 : DOBUF_UNLOAD, eap->arg,
4647 * :[N]sbuffer [N] to buffer N 4647 * :[N]sbuffer [N] to buffer N
4648 */ 4648 */
4649 static void 4649 static void
4650 ex_buffer(exarg_T *eap) 4650 ex_buffer(exarg_T *eap)
4651 { 4651 {
4652 if (ERROR_IF_POPUP_WINDOW) 4652 if (ERROR_IF_ANY_POPUP_WINDOW)
4653 return; 4653 return;
4654 if (*eap->arg) 4654 if (*eap->arg)
4655 eap->errmsg = e_trailing; 4655 eap->errmsg = e_trailing;
4656 else 4656 else
4657 { 4657 {
4681 * :[N]sbnext [N] split and to next buffer 4681 * :[N]sbnext [N] split and to next buffer
4682 */ 4682 */
4683 static void 4683 static void
4684 ex_bnext(exarg_T *eap) 4684 ex_bnext(exarg_T *eap)
4685 { 4685 {
4686 if (ERROR_IF_POPUP_WINDOW) 4686 if (ERROR_IF_ANY_POPUP_WINDOW)
4687 return; 4687 return;
4688 4688
4689 goto_buffer(eap, DOBUF_CURRENT, FORWARD, (int)eap->line2); 4689 goto_buffer(eap, DOBUF_CURRENT, FORWARD, (int)eap->line2);
4690 if (eap->do_ecmd_cmd != NULL) 4690 if (eap->do_ecmd_cmd != NULL)
4691 do_cmdline_cmd(eap->do_ecmd_cmd); 4691 do_cmdline_cmd(eap->do_ecmd_cmd);
4698 * :[N]sbprevious [N] split and to previous buffer 4698 * :[N]sbprevious [N] split and to previous buffer
4699 */ 4699 */
4700 static void 4700 static void
4701 ex_bprevious(exarg_T *eap) 4701 ex_bprevious(exarg_T *eap)
4702 { 4702 {
4703 if (ERROR_IF_POPUP_WINDOW) 4703 if (ERROR_IF_ANY_POPUP_WINDOW)
4704 return; 4704 return;
4705 4705
4706 goto_buffer(eap, DOBUF_CURRENT, BACKWARD, (int)eap->line2); 4706 goto_buffer(eap, DOBUF_CURRENT, BACKWARD, (int)eap->line2);
4707 if (eap->do_ecmd_cmd != NULL) 4707 if (eap->do_ecmd_cmd != NULL)
4708 do_cmdline_cmd(eap->do_ecmd_cmd); 4708 do_cmdline_cmd(eap->do_ecmd_cmd);
4715 * :sbfirst split and to first buffer 4715 * :sbfirst split and to first buffer
4716 */ 4716 */
4717 static void 4717 static void
4718 ex_brewind(exarg_T *eap) 4718 ex_brewind(exarg_T *eap)
4719 { 4719 {
4720 if (ERROR_IF_POPUP_WINDOW) 4720 if (ERROR_IF_ANY_POPUP_WINDOW)
4721 return; 4721 return;
4722 4722
4723 goto_buffer(eap, DOBUF_FIRST, FORWARD, 0); 4723 goto_buffer(eap, DOBUF_FIRST, FORWARD, 0);
4724 if (eap->do_ecmd_cmd != NULL) 4724 if (eap->do_ecmd_cmd != NULL)
4725 do_cmdline_cmd(eap->do_ecmd_cmd); 4725 do_cmdline_cmd(eap->do_ecmd_cmd);
4730 * :sblast split and to last buffer 4730 * :sblast split and to last buffer
4731 */ 4731 */
4732 static void 4732 static void
4733 ex_blast(exarg_T *eap) 4733 ex_blast(exarg_T *eap)
4734 { 4734 {
4735 if (ERROR_IF_POPUP_WINDOW) 4735 if (ERROR_IF_ANY_POPUP_WINDOW)
4736 return; 4736 return;
4737 4737
4738 goto_buffer(eap, DOBUF_LAST, BACKWARD, 0); 4738 goto_buffer(eap, DOBUF_LAST, BACKWARD, 0);
4739 if (eap->do_ecmd_cmd != NULL) 4739 if (eap->do_ecmd_cmd != NULL)
4740 do_cmdline_cmd(eap->do_ecmd_cmd); 4740 do_cmdline_cmd(eap->do_ecmd_cmd);
5760 #endif 5760 #endif
5761 int use_tab = eap->cmdidx == CMD_tabedit 5761 int use_tab = eap->cmdidx == CMD_tabedit
5762 || eap->cmdidx == CMD_tabfind 5762 || eap->cmdidx == CMD_tabfind
5763 || eap->cmdidx == CMD_tabnew; 5763 || eap->cmdidx == CMD_tabnew;
5764 5764
5765 if (ERROR_IF_POPUP_WINDOW) 5765 if (ERROR_IF_ANY_POPUP_WINDOW)
5766 return; 5766 return;
5767 5767
5768 #ifdef FEAT_GUI 5768 #ifdef FEAT_GUI
5769 need_mouse_correct = TRUE; 5769 need_mouse_correct = TRUE;
5770 #endif 5770 #endif
6143 { 6143 {
6144 int n; 6144 int n;
6145 int need_hide; 6145 int need_hide;
6146 int exmode_was = exmode_active; 6146 int exmode_was = exmode_active;
6147 6147
6148 if (eap->cmdidx != CMD_pedit && ERROR_IF_POPUP_WINDOW) 6148 if ((eap->cmdidx != CMD_pedit && ERROR_IF_POPUP_WINDOW)
6149 || ERROR_IF_TERM_POPUP_WINDOW)
6149 return; 6150 return;
6150 /* 6151 /*
6151 * ":vi" command ends Ex mode. 6152 * ":vi" command ends Ex mode.
6152 */ 6153 */
6153 if (exmode_active && (eap->cmdidx == CMD_visual 6154 if (exmode_active && (eap->cmdidx == CMD_visual