summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2009-07-09 13:55:43 +0000
committerBram Moolenaar <Bram@vim.org>2009-07-09 13:55:43 +0000
commit8e258a4a94a7829d116b90c7519aaa34514a0a95 (patch)
tree6b6da35297a5bd57ad7913fafe4e4a974a691aea
parent8d5946760b26dca4f5999b58a2be62e285e8cc5f (diff)
downloadvim-git-8e258a4a94a7829d116b90c7519aaa34514a0a95.tar.gz
updated for version 7.2-223v7.2.223
-rw-r--r--runtime/doc/various.txt11
-rw-r--r--src/ex_cmds.h2
-rw-r--r--src/ex_docmd.c23
-rw-r--r--src/version.c2
4 files changed, 30 insertions, 8 deletions
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index cf4b0c6bc..ffb9f2682 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -508,6 +508,17 @@ N *+X11* Unix only: can restore window title |X11|
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
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 49167505c..bf66b4061 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -991,6 +991,8 @@ EX(CMD_unmap, "unmap", ex_unmap,
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,
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 47c460cef..627e5f88d 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1677,8 +1677,8 @@ do_one_cmd(cmdlinep, sourcing,
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 save_msg_scroll = msg_scroll;
+ int save_msg_silent = -1;
int did_esilent = 0;
#ifdef HAVE_SANDBOX
int did_sandbox = FALSE;
@@ -1856,9 +1856,9 @@ do_one_cmd(cmdlinep, sourcing,
}
if (!checkforcmd(&ea.cmd, "silent", 3))
break;
- ++did_silent;
+ if (save_msg_silent == -1)
+ save_msg_silent = msg_silent;
++msg_silent;
- save_msg_scroll = msg_scroll;
if (*ea.cmd == '!' && !vim_iswhite(ea.cmd[-1]))
{
/* ":silent!", but not "silent !cmd" */
@@ -1886,6 +1886,13 @@ do_one_cmd(cmdlinep, sourcing,
#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,13 +2691,12 @@ doend:
cmdmod = save_cmdmod;
- if (did_silent > 0)
+ if (save_msg_silent != -1)
{
/* 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;
+ if (!did_emsg)
+ msg_silent = save_msg_silent;
emsg_silent -= did_esilent;
if (emsg_silent < 0)
emsg_silent = 0;
@@ -2987,6 +2993,7 @@ static struct cmdmod
{"silent", 3, FALSE},
{"tab", 3, TRUE},
{"topleft", 2, FALSE},
+ {"unsilent", 3, FALSE},
{"verbose", 4, TRUE},
{"vertical", 4, FALSE},
};
diff --git a/src/version.c b/src/version.c
index 3a9524256..fb0c3435b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 223,
+/**/
222,
/**/
221,