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


*** ../vim-7.2.222/runtime/doc/various.txt      2008-08-09 19:36:54.000000000 
+0200
--- runtime/doc/various.txt     2009-07-09 15:52:54.000000000 +0200
***************
*** 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
*** ../vim-7.2.222/src/ex_cmds.h        2008-11-09 13:43:25.000000000 +0100
--- src/ex_cmds.h       2009-07-01 18:12:55.000000000 +0200
***************
*** 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,
*** ../vim-7.2.222/src/ex_docmd.c       2009-07-01 20:18:43.000000000 +0200
--- src/ex_docmd.c      2009-07-09 15:24:03.000000000 +0200
***************
*** 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},
  };
*** ../vim-7.2.222/src/version.c        2009-07-01 20:18:43.000000000 +0200
--- src/version.c       2009-07-09 15:53:05.000000000 +0200
***************
*** 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 -- [email protected] -- 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    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui