patch 8.1.1785: map functionality mixed with character input
Problem: Map functionality mixed with character input.
Solution: Move the map functionality to a separate file. (Yegappan
Lakshmanan, closes #4740) Graduate the +localmap feature.
diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro
index 0733662..cde7ddf 100644
--- a/src/proto/getchar.pro
+++ b/src/proto/getchar.pro
@@ -23,6 +23,7 @@
int start_redo(long count, int old_redo);
int start_redo_ins(void);
void stop_redo_ins(void);
+int noremap_keys(void);
int ins_typebuf(char_u *str, int noremap, int offset, int nottyped, int silent);
void ins_char_typebuf(int c);
int typebuf_changed(int tb_change_cnt);
@@ -49,22 +50,4 @@
void vungetc(int c);
int fix_input_buffer(char_u *buf, int len);
int input_available(void);
-int do_map(int maptype, char_u *arg, int mode, int abbrev);
-int get_map_mode(char_u **cmdp, int forceit);
-void map_clear(char_u *cmdp, char_u *arg, int forceit, int abbr);
-void map_clear_int(buf_T *buf, int mode, int local, int abbr);
-char_u *map_mode_to_chars(int mode);
-int map_to_exists(char_u *str, char_u *modechars, int abbr);
-int map_to_exists_mode(char_u *rhs, int mode, int abbr);
-char_u *set_context_in_map_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx);
-int ExpandMappings(regmatch_T *regmatch, int *num_file, char_u ***file);
-int check_abbr(int c, char_u *ptr, int col, int mincol);
-char_u *vim_strsave_escape_csi(char_u *p);
-void vim_unescape_csi(char_u *p);
-int makemap(FILE *fd, buf_T *buf);
-int put_escstr(FILE *fd, char_u *strstart, int what);
-void check_map_keycodes(void);
-char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr);
-void init_mappings(void);
-void add_map(char_u *map, int mode);
/* vim: set ft=c : */
diff --git a/src/proto/map.pro b/src/proto/map.pro
new file mode 100644
index 0000000..3aa93e9
--- /dev/null
+++ b/src/proto/map.pro
@@ -0,0 +1,27 @@
+/* map.c */
+mapblock_T *get_maphash_list(int state, int c);
+mapblock_T *get_buf_maphash_list(int state, int c);
+int is_maphash_valid(void);
+int do_map(int maptype, char_u *arg, int mode, int abbrev);
+void map_clear_int(buf_T *buf, int mode, int local, int abbr);
+int map_to_exists(char_u *str, char_u *modechars, int abbr);
+int map_to_exists_mode(char_u *rhs, int mode, int abbr);
+char_u *set_context_in_map_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx);
+int ExpandMappings(regmatch_T *regmatch, int *num_file, char_u ***file);
+int check_abbr(int c, char_u *ptr, int col, int mincol);
+char_u *eval_map_expr(char_u *str, int c);
+char_u *vim_strsave_escape_csi(char_u *p);
+void vim_unescape_csi(char_u *p);
+int makemap(FILE *fd, buf_T *buf);
+int put_escstr(FILE *fd, char_u *strstart, int what);
+void check_map_keycodes(void);
+char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr);
+void get_maparg(typval_T *argvars, typval_T *rettv, int exact);
+void init_mappings(void);
+void add_map(char_u *map, int mode);
+void ex_abbreviate(exarg_T *eap);
+void ex_map(exarg_T *eap);
+void ex_unmap(exarg_T *eap);
+void ex_mapclear(exarg_T *eap);
+void ex_abclear(exarg_T *eap);
+/* vim: set ft=c : */