diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-01-22 17:58:13 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-01-22 17:58:13 +0000 |
commit | 7b29f6a3949743914f08410b6f6bd6237c2f2038 (patch) | |
tree | 21b717dfe0bc0e3696c7e089381845e27c2ed62c /src/evalvars.c | |
parent | 5600a709f453045c80f92087acc0f855b4af377a (diff) |
patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'v8.2.4181
Problem: Vim9: cannot use an import in 'diffexpr'.
Solution: Set the script context when evaluating 'diffexpr'. Do not require
'diffexpr' to return a bool, it was ignored anyway.
Diffstat (limited to 'src/evalvars.c')
-rw-r--r-- | src/evalvars.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/evalvars.c b/src/evalvars.c index d86d6eb518..a1d2b9b49b 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -415,15 +415,26 @@ eval_diff( char_u *newfile, char_u *outfile) { - int err = FALSE; + sctx_T saved_sctx = current_sctx; + sctx_T *ctx; + typval_T *tv; set_vim_var_string(VV_FNAME_IN, origfile, -1); set_vim_var_string(VV_FNAME_NEW, newfile, -1); set_vim_var_string(VV_FNAME_OUT, outfile, -1); - (void)eval_to_bool(p_dex, &err, NULL, FALSE); + + ctx = get_option_sctx("diffexpr"); + if (ctx != NULL) + current_sctx = *ctx; + + // errors are ignored + tv = eval_expr(p_dex, NULL); + clear_tv(tv); + set_vim_var_string(VV_FNAME_IN, NULL, -1); set_vim_var_string(VV_FNAME_NEW, NULL, -1); set_vim_var_string(VV_FNAME_OUT, NULL, -1); + current_sctx = saved_sctx; } void |