Mercurial > vim
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 |