Patch 7.3.097
Problem:    Using ":call" inside "if 0" does not see that a function returns a
            Dict and gives error for "." as string concatenation.
Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
Files:      src/eval.c


*** ../vim-7.3.096/src/eval.c   2010-12-17 18:06:00.000000000 +0100
--- src/eval.c  2011-01-04 18:54:27.000000000 +0100
***************
*** 3335,3340 ****
--- 3335,3349 ----
      int               failed = FALSE;
      funcdict_T        fudi;
  
+     if (eap->skip)
+     {
+       /* trans_function_name() doesn't work well when skipping, use eval0()
+        * instead to skip to any following command, e.g. for:
+        *   :if 0 | call dict.foo().bar() | endif  */
+       eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
+       return;
+     }
+ 
      tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
      if (fudi.fd_newkey != NULL)
      {
*** ../vim-7.3.096/src/version.c        2011-01-04 18:11:39.000000000 +0100
--- src/version.c       2011-01-04 19:00:21.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     97,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui