To: vim_dev@googlegroups.com
Subject: Patch 7.3.481
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.481
Problem: Changing 'virtualedit' in an operator function to "all" does not
have the desired effect. (Aaron Bohannon)
Solution: Save, reset and restore virtual_op when executing an operator
function.
Files: src/normal.c
*** ../vim-7.3.480/src/normal.c 2012-02-05 01:18:41.000000000 +0100
--- src/normal.c 2012-03-28 12:59:46.000000000 +0200
***************
*** 2279,2284 ****
--- 2279,2285 ----
{
#ifdef FEAT_EVAL
char_u *(argv[1]);
+ int save_virtual_op = virtual_op;
if (*p_opfunc == NUL)
EMSG(_("E774: 'operatorfunc' is empty"));
***************
*** 2297,2303 ****
--- 2298,2311 ----
argv[0] = (char_u *)"line";
else
argv[0] = (char_u *)"char";
+
+ /* Reset virtual_op so that 'virtualedit' can be changed in the
+ * function. */
+ virtual_op = MAYBE;
+
(void)call_func_retnr(p_opfunc, 1, argv, FALSE);
+
+ virtual_op = save_virtual_op;
}
#else
EMSG(_("E775: Eval feature not available"));
*** ../vim-7.3.480/src/version.c 2012-03-23 18:39:10.000000000 +0100
--- src/version.c 2012-03-28 12:50:20.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 481,
/**/
--
hundred-and-one symptoms of being an internet addict:
269. You wonder how you can make your dustbin produce Sesame Street's
Oscar's the Garbage Monster song when you empty it.
/// 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 ///