0
0
mirror of https://github.com/vim/vim.git synced 2025-10-23 08:44:20 -04:00

patch 9.1.0450: evalc. code too complex

Problem:  eval.c code too complex
Solution: refactor eval6() and eval9() functions into several smaller
          functions (Yegappan Lakshmanan)

closes: #14875

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan
2024-05-30 07:50:08 +02:00
committed by Christian Brabandt
parent 51024bbc1a
commit 51c45e89b5
4 changed files with 428 additions and 293 deletions

View File

@@ -1091,6 +1091,33 @@ failret:
return OK;
}
/*
* Evaluate a literal dictionary: #{key: val, key: val}
* "*arg" points to the "#".
* On return, "*arg" points to the character after the Dict.
* Return OK or FAIL. Returns NOTDONE for {expr}.
*/
int
eval_lit_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg)
{
int vim9script = in_vim9script();
int ret = OK;
if (vim9script)
{
ret = vim9_bad_comment(*arg) ? FAIL : NOTDONE;
}
else if ((*arg)[1] == '{')
{
++*arg;
ret = eval_dict(arg, rettv, evalarg, TRUE);
}
else
ret = NOTDONE;
return ret;
}
/*
* Go over all entries in "d2" and add them to "d1".
* When "action" is "error" then a duplicate key is an error.