summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.086
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.086')
-rw-r--r--source/ap/vim/patches/7.3.086138
1 files changed, 138 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.086 b/source/ap/vim/patches/7.3.086
new file mode 100644
index 000000000..cf494e004
--- /dev/null
+++ b/source/ap/vim/patches/7.3.086
@@ -0,0 +1,138 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.086
+Fcc: outbox
+From: Bram Moolenaar <Bram@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@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 ///