| To: vim-dev@vim.org |
| Subject: Patch 7.2.223 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.2.223 |
| Problem: When a script is run with ":silent" it is not able to give warning |
| messages. |
| Solution: Add the ":unsilent" command. |
| Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c |
| |
| |
| |
| |
| |
| *** 508,513 **** |
| --- 508,524 ---- |
| messages though. Use ":silent" in the command itself |
| to avoid that: ":silent menu .... :silent command". |
| |
| + *:uns* *:unsilent* |
| + :uns[ilent] {command} Execute {command} not silently. Only makes a |
| + difference when |:silent| was used to get to this |
| + command. |
| + Use this for giving a message even when |:silent| was |
| + used. In this example |:silent| is used to avoid the |
| + message about reading the file and |:unsilent| to be |
| + able to list the first line of each file. > |
| + :silent argdo unsilent echo expand('%') . ": " . getline(1) |
| + < |
| + |
| *:verb* *:verbose* |
| :[count]verb[ose] {command} |
| Execute {command} with 'verbose' set to [count]. If |
| |
| |
| |
| *** 991,996 **** |
| --- 991,998 ---- |
| BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), |
| EX(CMD_unmenu, "unmenu", ex_menu, |
| BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), |
| + EX(CMD_unsilent, "unsilent", ex_wrongmodifier, |
| + NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), |
| EX(CMD_update, "update", ex_update, |
| RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR), |
| EX(CMD_vglobal, "vglobal", ex_global, |
| |
| |
| |
| *** 1677,1684 **** |
| char_u *errormsg = NULL; /* error message */ |
| exarg_T ea; /* Ex command arguments */ |
| long verbose_save = -1; |
| ! int save_msg_scroll = 0; |
| ! int did_silent = 0; |
| int did_esilent = 0; |
| #ifdef HAVE_SANDBOX |
| int did_sandbox = FALSE; |
| --- 1677,1684 ---- |
| char_u *errormsg = NULL; /* error message */ |
| exarg_T ea; /* Ex command arguments */ |
| long verbose_save = -1; |
| ! int save_msg_scroll = msg_scroll; |
| ! int save_msg_silent = -1; |
| int did_esilent = 0; |
| #ifdef HAVE_SANDBOX |
| int did_sandbox = FALSE; |
| |
| *** 1856,1864 **** |
| } |
| if (!checkforcmd(&ea.cmd, "silent", 3)) |
| break; |
| ! ++did_silent; |
| ++msg_silent; |
| - save_msg_scroll = msg_scroll; |
| if (*ea.cmd == '!' && !vim_iswhite(ea.cmd[-1])) |
| { |
| /* ":silent!", but not "silent !cmd" */ |
| --- 1856,1864 ---- |
| } |
| if (!checkforcmd(&ea.cmd, "silent", 3)) |
| break; |
| ! if (save_msg_silent == -1) |
| ! save_msg_silent = msg_silent; |
| ++msg_silent; |
| if (*ea.cmd == '!' && !vim_iswhite(ea.cmd[-1])) |
| { |
| /* ":silent!", but not "silent !cmd" */ |
| |
| *** 1886,1891 **** |
| --- 1886,1898 ---- |
| #endif |
| continue; |
| |
| + case 'u': if (!checkforcmd(&ea.cmd, "unsilent", 3)) |
| + break; |
| + if (save_msg_silent == -1) |
| + save_msg_silent = msg_silent; |
| + msg_silent = 0; |
| + continue; |
| + |
| case 'v': if (checkforcmd(&ea.cmd, "vertical", 4)) |
| { |
| #ifdef FEAT_VERTSPLIT |
| |
| *** 2684,2696 **** |
| |
| cmdmod = save_cmdmod; |
| |
| ! if (did_silent > 0) |
| { |
| /* messages could be enabled for a serious error, need to check if the |
| * counters don't become negative */ |
| ! msg_silent -= did_silent; |
| ! if (msg_silent < 0) |
| ! msg_silent = 0; |
| emsg_silent -= did_esilent; |
| if (emsg_silent < 0) |
| emsg_silent = 0; |
| --- 2691,2702 ---- |
| |
| cmdmod = save_cmdmod; |
| |
| ! if (save_msg_silent != -1) |
| { |
| /* messages could be enabled for a serious error, need to check if the |
| * counters don't become negative */ |
| ! if (!did_emsg) |
| ! msg_silent = save_msg_silent; |
| emsg_silent -= did_esilent; |
| if (emsg_silent < 0) |
| emsg_silent = 0; |
| |
| *** 2987,2992 **** |
| --- 2993,2999 ---- |
| {"silent", 3, FALSE}, |
| {"tab", 3, TRUE}, |
| {"topleft", 2, FALSE}, |
| + {"unsilent", 3, FALSE}, |
| {"verbose", 4, TRUE}, |
| {"vertical", 4, FALSE}, |
| }; |
| |
| |
| |
| *** 678,679 **** |
| --- 678,681 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 223, |
| /**/ |
| |
| -- |
| Q: How many legs does a giraffe have? |
| A: Eight: two in front, two behind, two on the left and two on the right |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |