home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.3.879
- 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.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@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 ///
-