patch 8.1.0613: when executing an insecure function the secure flag is stuck
Problem: When executing an insecure function the secure flag is stuck.
(Gabriel Barta)
Solution: Restore "secure" instead of decrementing it. (closes #3705)
diff --git a/src/buffer.c b/src/buffer.c
index bb94069..66068d9 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5519,6 +5519,7 @@
if (*s != NUL) /* skip over an empty "::" */
{
+ int secure_save = secure;
#ifdef FEAT_EVAL
save_current_sctx = current_sctx;
current_sctx.sc_sid = SID_MODELINE;
@@ -5530,7 +5531,7 @@
retval = do_set(s, OPT_MODELINE | OPT_LOCAL | flags);
- --secure;
+ secure = secure_save;
#ifdef FEAT_EVAL
current_sctx = save_current_sctx;
#endif