diff options
Diffstat (limited to 'src/nvim/eval.c')
| -rw-r--r-- | src/nvim/eval.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 8fa4e23df6..6f7d5ed6e4 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -21504,7 +21504,11 @@ void ex_function(exarg_T *eap)      fp = find_func(name);      if (fp != NULL) { -      if (!eap->forceit) { +      // Function can be replaced with "function!" and when sourcing the +      // same script again, but only once. +      if (!eap->forceit +          && (fp->uf_script_ctx.sc_sid != current_sctx.sc_sid +              || fp->uf_script_ctx.sc_seq == current_sctx.sc_seq)) {          emsg_funcname(e_funcexts, name);          goto erret;        } | 
