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)
diff --git a/src/map.c b/src/map.c
index 09339a2..4787400 100644
--- a/src/map.c
+++ b/src/map.c
@@ -2184,7 +2184,7 @@
return NULL;
}
- void
+ static void
get_maparg(typval_T *argvars, typval_T *rettv, int exact)
{
char_u *keys;
@@ -2288,6 +2288,40 @@
}
/*
+ * "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
*/
void