[vim/f19] - patchlevel 879
Karsten Hopp
karsten at fedoraproject.org
Mon Apr 15 15:07:41 UTC 2013
commit f23d95e4707db295016e3929098f68c46194e517
Author: Karsten Hopp <karsten at redhat.com>
Date: Mon Apr 15 17:02:32 2013 +0200
- patchlevel 879
7.3.879 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 97 insertions(+), 0 deletions(-)
---
diff --git a/7.3.879 b/7.3.879
new file mode 100644
index 0000000..bb642dd
--- /dev/null
+++ b/7.3.879
@@ -0,0 +1,97 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.879
+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.879
+Problem: When using an ex command in operator pending mode, using Esc to
+ abort the command still executes the operator. (David Bürgin)
+Solution: Clear the operator when the ex command fails. (Christian Brabandt)
+Files: src/normal.c
+
+
+*** ../vim-7.3.878/src/normal.c 2013-03-16 14:20:45.000000000 +0100
+--- src/normal.c 2013-04-05 16:54:13.000000000 +0200
+***************
+*** 5418,5423 ****
+--- 5418,5424 ----
+ cmdarg_T *cap;
+ {
+ int old_p_im;
++ int cmd_result;
+
+ #ifdef FEAT_VISUAL
+ if (VIsual_active)
+***************
+*** 5449,5455 ****
+ old_p_im = p_im;
+
+ /* get a command line and execute it */
+! do_cmdline(NULL, getexline, NULL,
+ cap->oap->op_type != OP_NOP ? DOCMD_KEEPLINE : 0);
+
+ /* If 'insertmode' changed, enter or exit Insert mode */
+--- 5450,5456 ----
+ old_p_im = p_im;
+
+ /* get a command line and execute it */
+! cmd_result = do_cmdline(NULL, getexline, NULL,
+ cap->oap->op_type != OP_NOP ? DOCMD_KEEPLINE : 0);
+
+ /* If 'insertmode' changed, enter or exit Insert mode */
+***************
+*** 5461,5472 ****
+ restart_edit = 0;
+ }
+
+! /* The start of the operator may have become invalid by the Ex
+! * command. */
+! if (cap->oap->op_type != OP_NOP
+ && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count
+ || cap->oap->start.col >
+! (colnr_T)STRLEN(ml_get(cap->oap->start.lnum))))
+ clearopbeep(cap->oap);
+ }
+ }
+--- 5462,5478 ----
+ restart_edit = 0;
+ }
+
+! if (cmd_result == FAIL)
+! /* The Ex command failed, do not execute the operator. */
+! clearop(cap->oap);
+! else if (cap->oap->op_type != OP_NOP
+ && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count
+ || cap->oap->start.col >
+! (colnr_T)STRLEN(ml_get(cap->oap->start.lnum))
+! || did_emsg
+! ))
+! /* The start of the operator has become invalid by the Ex command.
+! */
+ clearopbeep(cap->oap);
+ }
+ }
+*** ../vim-7.3.878/src/version.c 2013-04-05 15:39:41.000000000 +0200
+--- src/version.c 2013-04-05 16:56:43.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+ { /* Add new patch number below this line */
++ /**/
++ 879,
+ /**/
+
+--
+~
+~
+~
+".signature" 4 lines, 50 characters written
+
+ /// 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