From 4a15504e911bc90a29d862862f0b7a46d8acd12a Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Fri, 30 Jul 2021 21:32:45 +0200 Subject: patch 8.2.3252: duplicated code for adding buffer lines Problem: Duplicated code for adding buffer lines. Solution: Move code to a common function. Also move map functions to map.c. (Yegappan Lakshmanan, closes #8665) --- src/map.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'src/map.c') diff --git a/src/map.c b/src/map.c index 09339a28c..47874008c 100644 --- a/src/map.c +++ b/src/map.c @@ -2184,7 +2184,7 @@ check_map( return NULL; } - void + static void get_maparg(typval_T *argvars, typval_T *rettv, int exact) { char_u *keys; @@ -2287,6 +2287,40 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact) vim_free(alt_keys_buf); } +/* + * "maparg()" function + */ + void +f_maparg(typval_T *argvars, typval_T *rettv) +{ + if (in_vim9script() + && (check_for_string_arg(argvars, 0) == FAIL + || check_for_opt_string_arg(argvars, 1) == FAIL + || (argvars[1].v_type != VAR_UNKNOWN + && (check_for_opt_bool_arg(argvars, 2) == FAIL + || (argvars[2].v_type != VAR_UNKNOWN + && check_for_opt_bool_arg(argvars, 3) == FAIL))))) + return; + + get_maparg(argvars, rettv, TRUE); +} + +/* + * "mapcheck()" function + */ + void +f_mapcheck(typval_T *argvars, typval_T *rettv) +{ + if (in_vim9script() + && (check_for_string_arg(argvars, 0) == FAIL + || check_for_opt_string_arg(argvars, 1) == FAIL + || (argvars[1].v_type != VAR_UNKNOWN + && check_for_opt_bool_arg(argvars, 2) == FAIL))) + return; + + get_maparg(argvars, rettv, FALSE); +} + /* * "mapset()" function */ -- cgit v1.2.1