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