0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.0670: cannot change window when evaluating 'completefunc'

Problem:    Cannot change window when evaluating 'completefunc'.
Solution:   Make a difference between not changing text or buffers and also
            not changing window.
This commit is contained in:
Bram Moolenaar
2020-04-30 22:31:18 +02:00
parent 4e5534fab7
commit 6adb9ea0a6
18 changed files with 67 additions and 43 deletions

View File

@@ -393,7 +393,7 @@ eval_to_string(
/*
* Call eval_to_string() without using current local variables and using
* textlock. When "use_sandbox" is TRUE use the sandbox.
* textwinlock. When "use_sandbox" is TRUE use the sandbox.
*/
char_u *
eval_to_string_safe(
@@ -407,11 +407,11 @@ eval_to_string_safe(
save_funccal(&funccal_entry);
if (use_sandbox)
++sandbox;
++textlock;
++textwinlock;
retval = eval_to_string(arg, nextcmd, FALSE);
if (use_sandbox)
--sandbox;
--textlock;
--textwinlock;
restore_funccal();
return retval;
}
@@ -576,7 +576,7 @@ eval_foldexpr(char_u *arg, int *cp)
++emsg_off;
if (use_sandbox)
++sandbox;
++textlock;
++textwinlock;
*cp = NUL;
if (eval0(arg, &tv, NULL, TRUE) == FAIL)
retval = 0;
@@ -601,7 +601,7 @@ eval_foldexpr(char_u *arg, int *cp)
--emsg_off;
if (use_sandbox)
--sandbox;
--textlock;
--textwinlock;
return (int)retval;
}