mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
updated for version 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.
This commit is contained in:
@@ -2279,6 +2279,7 @@ op_function(oap)
|
||||
{
|
||||
#ifdef FEAT_EVAL
|
||||
char_u *(argv[1]);
|
||||
int save_virtual_op = virtual_op;
|
||||
|
||||
if (*p_opfunc == NUL)
|
||||
EMSG(_("E774: 'operatorfunc' is empty"));
|
||||
@@ -2297,7 +2298,14 @@ op_function(oap)
|
||||
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"));
|
||||
|
@@ -714,6 +714,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
481,
|
||||
/**/
|
||||
480,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user