To: vim_dev@googlegroups.com Subject: Patch 7.3.879 Fcc: outbox From: Bram Moolenaar 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 ///