mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 09:18:19 +00:00
vim-patch:8.2.4193: cannot use an import in 'charconvert'
Problem: Cannot use an import in 'charconvert'.
Solution: Set the script context when evaluating 'charconvert'. Also expand
script-local functions in 'charconvert'.
f4e88f2152
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -647,19 +647,27 @@ void var_redir_stop(void)
|
|||||||
int eval_charconvert(const char *const enc_from, const char *const enc_to,
|
int eval_charconvert(const char *const enc_from, const char *const enc_to,
|
||||||
const char *const fname_from, const char *const fname_to)
|
const char *const fname_from, const char *const fname_to)
|
||||||
{
|
{
|
||||||
bool err = false;
|
const sctx_T saved_sctx = current_sctx;
|
||||||
|
|
||||||
set_vim_var_string(VV_CC_FROM, enc_from, -1);
|
set_vim_var_string(VV_CC_FROM, enc_from, -1);
|
||||||
set_vim_var_string(VV_CC_TO, enc_to, -1);
|
set_vim_var_string(VV_CC_TO, enc_to, -1);
|
||||||
set_vim_var_string(VV_FNAME_IN, fname_from, -1);
|
set_vim_var_string(VV_FNAME_IN, fname_from, -1);
|
||||||
set_vim_var_string(VV_FNAME_OUT, fname_to, -1);
|
set_vim_var_string(VV_FNAME_OUT, fname_to, -1);
|
||||||
|
sctx_T *ctx = get_option_sctx("charconvert");
|
||||||
|
if (ctx != NULL) {
|
||||||
|
current_sctx = *ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool err = false;
|
||||||
if (eval_to_bool(p_ccv, &err, NULL, false)) {
|
if (eval_to_bool(p_ccv, &err, NULL, false)) {
|
||||||
err = true;
|
err = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_vim_var_string(VV_CC_FROM, NULL, -1);
|
set_vim_var_string(VV_CC_FROM, NULL, -1);
|
||||||
set_vim_var_string(VV_CC_TO, NULL, -1);
|
set_vim_var_string(VV_CC_TO, NULL, -1);
|
||||||
set_vim_var_string(VV_FNAME_IN, NULL, -1);
|
set_vim_var_string(VV_FNAME_IN, NULL, -1);
|
||||||
set_vim_var_string(VV_FNAME_OUT, NULL, -1);
|
set_vim_var_string(VV_FNAME_OUT, NULL, -1);
|
||||||
|
current_sctx = saved_sctx;
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
Reference in New Issue
Block a user