[vim/f13] Patchlevel 086

Karsten Hopp karsten at fedoraproject.org
Tue Jun 7 09:48:56 UTC 2011


commit 0bfd6391c172d2259a81e0b58034c4b62eb346c3
Author: Karsten Hopp <karsten at redhat.com>
Date:   Tue Jun 7 11:44:16 2011 +0200

    Patchlevel 086

 7.3.086 |  138 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 138 insertions(+), 0 deletions(-)
---
diff --git a/7.3.086 b/7.3.086
new file mode 100644
index 0000000..cf494e0
--- /dev/null
+++ b/7.3.086
@@ -0,0 +1,138 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.086
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.086
+Problem:    When using a mapping with an expression and there was no count,
+	    v:count has the value of the previous command. (ZyX)
+Solution:   Also set v:count and v:count1 before getting the character that
+	    could be a command or a count.
+Files:	    src/normal.c
+
+
+*** ../vim-7.3.085/src/normal.c	2010-10-13 18:06:42.000000000 +0200
+--- src/normal.c	2010-12-17 18:46:56.000000000 +0100
+***************
+*** 25,30 ****
+--- 25,33 ----
+  static int	restart_VIsual_select = 0;
+  #endif
+  
++ #ifdef FEAT_EVAL
++ static void	set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
++ #endif
+  static int
+  # ifdef __BORLANDC__
+  _RTLENTRYF
+***************
+*** 648,653 ****
+--- 651,664 ----
+      dont_scroll = FALSE;	/* allow scrolling here */
+  #endif
+  
++ #ifdef FEAT_EVAL
++     /* Set v:count here, when called from main() and not a stuffed
++      * command, so that v:count can be used in an expression mapping
++      * when there is no count. */
++     if (toplevel && stuff_empty())
++ 	set_vcount_ca(&ca, &set_prevcount);
++ #endif
++ 
+      /*
+       * Get the command character from the user.
+       */
+***************
+*** 725,739 ****
+  	     * command, so that v:count can be used in an expression mapping
+  	     * right after the count. */
+  	    if (toplevel && stuff_empty())
+! 	    {
+! 		long count = ca.count0;
+! 
+! 		/* multiply with ca.opcount the same way as below */
+! 		if (ca.opcount != 0)
+! 		    count = ca.opcount * (count == 0 ? 1 : count);
+! 		set_vcount(count, count == 0 ? 1 : count, set_prevcount);
+! 		set_prevcount = FALSE;  /* only set v:prevcount once */
+! 	    }
+  #endif
+  	    if (ctrl_w)
+  	    {
+--- 736,742 ----
+  	     * command, so that v:count can be used in an expression mapping
+  	     * right after the count. */
+  	    if (toplevel && stuff_empty())
+! 		set_vcount_ca(&ca, &set_prevcount);
+  #endif
+  	    if (ctrl_w)
+  	    {
+***************
+*** 1386,1391 ****
+--- 1389,1414 ----
+      opcount = ca.opcount;
+  }
+  
++ #ifdef FEAT_EVAL
++ /*
++  * Set v:count and v:count1 according to "cap".
++  * Set v:prevcount only when "set_prevcount" is TRUE.
++  */
++     static void
++ set_vcount_ca(cap, set_prevcount)
++     cmdarg_T	*cap;
++     int		*set_prevcount;
++ {
++     long count = cap->count0;
++ 
++     /* multiply with cap->opcount the same way as above */
++     if (cap->opcount != 0)
++ 	count = cap->opcount * (count == 0 ? 1 : count);
++     set_vcount(count, count == 0 ? 1 : count, *set_prevcount);
++     *set_prevcount = FALSE;  /* only set v:prevcount once */
++ }
++ #endif
++ 
+  /*
+   * Handle an operator after visual mode or when the movement is finished
+   */
+***************
+*** 8529,8535 ****
+      else
+  	curwin->w_curswant = 0;
+      /* keep curswant at the column where we wanted to go, not where
+!        we ended; differs if line is too short */
+      curwin->w_set_curswant = FALSE;
+  }
+  
+--- 8552,8558 ----
+      else
+  	curwin->w_curswant = 0;
+      /* keep curswant at the column where we wanted to go, not where
+!      * we ended; differs if line is too short */
+      curwin->w_set_curswant = FALSE;
+  }
+  
+*** ../vim-7.3.085/src/version.c	2010-12-17 18:06:00.000000000 +0100
+--- src/version.c	2010-12-17 18:51:20.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     86,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+15. Five days in advance, tell your friends you can't attend their
+    party because you're not in the mood.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- 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    ///


More information about the scm-commits mailing list