Karsten Hopp ac469d
To: vim_dev@googlegroups.com
Karsten Hopp ac469d
Subject: Patch 7.3.097
Karsten Hopp ac469d
Fcc: outbox
Karsten Hopp ac469d
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp ac469d
Mime-Version: 1.0
Karsten Hopp ac469d
Content-Type: text/plain; charset=UTF-8
Karsten Hopp ac469d
Content-Transfer-Encoding: 8bit
Karsten Hopp ac469d
------------
Karsten Hopp ac469d
Karsten Hopp ac469d
Patch 7.3.097
Karsten Hopp ac469d
Problem:    Using ":call" inside "if 0" does not see that a function returns a
Karsten Hopp ac469d
	    Dict and gives error for "." as string concatenation.
Karsten Hopp ac469d
Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
Karsten Hopp ac469d
Files:	    src/eval.c
Karsten Hopp ac469d
Karsten Hopp ac469d
Karsten Hopp ac469d
*** ../vim-7.3.096/src/eval.c	2010-12-17 18:06:00.000000000 +0100
Karsten Hopp ac469d
--- src/eval.c	2011-01-04 18:54:27.000000000 +0100
Karsten Hopp ac469d
***************
Karsten Hopp ac469d
*** 3335,3340 ****
Karsten Hopp ac469d
--- 3335,3349 ----
Karsten Hopp ac469d
      int		failed = FALSE;
Karsten Hopp ac469d
      funcdict_T	fudi;
Karsten Hopp ac469d
  
Karsten Hopp ac469d
+     if (eap->skip)
Karsten Hopp ac469d
+     {
Karsten Hopp ac469d
+ 	/* trans_function_name() doesn't work well when skipping, use eval0()
Karsten Hopp ac469d
+ 	 * instead to skip to any following command, e.g. for:
Karsten Hopp ac469d
+ 	 *   :if 0 | call dict.foo().bar() | endif  */
Karsten Hopp ac469d
+ 	eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
Karsten Hopp ac469d
+ 	return;
Karsten Hopp ac469d
+     }
Karsten Hopp ac469d
+ 
Karsten Hopp ac469d
      tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
Karsten Hopp ac469d
      if (fudi.fd_newkey != NULL)
Karsten Hopp ac469d
      {
Karsten Hopp ac469d
*** ../vim-7.3.096/src/version.c	2011-01-04 18:11:39.000000000 +0100
Karsten Hopp ac469d
--- src/version.c	2011-01-04 19:00:21.000000000 +0100
Karsten Hopp ac469d
***************
Karsten Hopp ac469d
*** 716,717 ****
Karsten Hopp ac469d
--- 716,719 ----
Karsten Hopp ac469d
  {   /* Add new patch number below this line */
Karsten Hopp ac469d
+ /**/
Karsten Hopp ac469d
+     97,
Karsten Hopp ac469d
  /**/
Karsten Hopp ac469d
Karsten Hopp ac469d
-- 
Karsten Hopp ac469d
hundred-and-one symptoms of being an internet addict:
Karsten Hopp ac469d
86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.
Karsten Hopp ac469d
Karsten Hopp ac469d
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp ac469d
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp ac469d
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp ac469d
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///