diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-02-03 10:22:11 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-03 10:22:11 +0800 |
commit | 9ab9cde2ca7b917a894068698ef2fec3a851fdd5 (patch) | |
tree | 8ed12c4c073cfb8ff25e062cbbbdc63a9feecd84 /src/nvim/eval.c | |
parent | 1f40b4e22232f22551a9ae89a9f8d59b5ba0c0b6 (diff) | |
download | rneovim-9ab9cde2ca7b917a894068698ef2fec3a851fdd5.tar.gz rneovim-9ab9cde2ca7b917a894068698ef2fec3a851fdd5.tar.bz2 rneovim-9ab9cde2ca7b917a894068698ef2fec3a851fdd5.zip |
vim-patch:partial:9.0.1196: code is indented more than necessary (#27315)
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes vim/vim#11813)
https://github.com/vim/vim/commit/e8575988969579f9e1439181ae338b2ff74054a8
Skip list_alloc_with_items().
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 5053cc38de..3647bde952 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5397,35 +5397,37 @@ static void filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap // On type errors, the preceding call has already displayed an error // message. Avoid a misleading error message for an empty string that // was not passed as argument. - if (expr->v_type != VAR_UNKNOWN) { - typval_T save_val; - prepare_vimvar(VV_VAL, &save_val); - - // We reset "did_emsg" to be able to detect whether an error - // occurred during evaluation of the expression. - int save_did_emsg = did_emsg; - did_emsg = false; - - typval_T save_key; - prepare_vimvar(VV_KEY, &save_key); - if (argvars[0].v_type == VAR_DICT) { - filter_map_dict(argvars[0].vval.v_dict, filtermap, func_name, - arg_errmsg, expr, rettv); - } else if (argvars[0].v_type == VAR_BLOB) { - filter_map_blob(argvars[0].vval.v_blob, filtermap, expr, arg_errmsg, rettv); - } else if (argvars[0].v_type == VAR_STRING) { - filter_map_string(tv_get_string(&argvars[0]), filtermap, expr, rettv); - } else { - assert(argvars[0].v_type == VAR_LIST); - filter_map_list(argvars[0].vval.v_list, filtermap, func_name, - arg_errmsg, expr, rettv); - } + if (expr->v_type == VAR_UNKNOWN) { + return; + } + + typval_T save_val; + prepare_vimvar(VV_VAL, &save_val); - restore_vimvar(VV_KEY, &save_key); - restore_vimvar(VV_VAL, &save_val); + // We reset "did_emsg" to be able to detect whether an error + // occurred during evaluation of the expression. + int save_did_emsg = did_emsg; + did_emsg = false; - did_emsg |= save_did_emsg; + typval_T save_key; + prepare_vimvar(VV_KEY, &save_key); + if (argvars[0].v_type == VAR_DICT) { + filter_map_dict(argvars[0].vval.v_dict, filtermap, func_name, + arg_errmsg, expr, rettv); + } else if (argvars[0].v_type == VAR_BLOB) { + filter_map_blob(argvars[0].vval.v_blob, filtermap, expr, arg_errmsg, rettv); + } else if (argvars[0].v_type == VAR_STRING) { + filter_map_string(tv_get_string(&argvars[0]), filtermap, expr, rettv); + } else { + assert(argvars[0].v_type == VAR_LIST); + filter_map_list(argvars[0].vval.v_list, filtermap, func_name, + arg_errmsg, expr, rettv); } + + restore_vimvar(VV_KEY, &save_key); + restore_vimvar(VV_VAL, &save_val); + + did_emsg |= save_did_emsg; } /// Handle one item for map(), filter(), foreach(). |