[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