patch 8.1.2062: the mouse code is spread out

Problem:    The mouse code is spread out.
Solution:   Move all the mouse code to mouse.c. (Yegappan Lakshmanan,
            closes #4959)
diff --git a/src/proto/edit.pro b/src/proto/edit.pro
index db9cf3d..f1ab205 100644
--- a/src/proto/edit.pro
+++ b/src/proto/edit.pro
@@ -7,6 +7,7 @@
 int prompt_curpos_editable(void);
 void edit_unputchar(void);
 void display_dollar(colnr_T col);
+void undisplay_dollar(void);
 void change_indent(int type, int amount, int round, int replaced, int call_changed_bytes);
 void truncate_spaces(char_u *line);
 void backspace_until_column(int col);
@@ -36,6 +37,7 @@
 int ins_eol(int c);
 int ins_copychar(linenr_T lnum);
 colnr_T get_nolist_virtcol(void);
-int can_cindent_get(void);
+int get_can_cindent(void);
+void set_can_cindent(int val);
 int ins_apply_autocmds(event_T event);
 /* vim: set ft=c : */
diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro
index 8de1aff..8d60f66 100644
--- a/src/proto/misc1.pro
+++ b/src/proto/misc1.pro
@@ -23,7 +23,6 @@
 char_u *skip_to_option_part(char_u *p);
 void check_status(buf_T *buf);
 int ask_yesno(char_u *str, int direct);
-int is_mouse_key(int c);
 void f_mode(typval_T *argvars, typval_T *rettv);
 void f_state(typval_T *argvars, typval_T *rettv);
 int get_keystroke(void);
diff --git a/src/proto/misc2.pro b/src/proto/misc2.pro
index 546fa63..bcdcd31 100644
--- a/src/proto/misc2.pro
+++ b/src/proto/misc2.pro
@@ -74,8 +74,6 @@
 int find_special_key_in_table(int c);
 int get_special_key_code(char_u *name);
 char_u *get_key_name(int i);
-int get_mouse_button(int code, int *is_click, int *is_drag);
-int get_pseudo_mouse_code(int button, int is_click, int is_drag);
 int get_fileformat(buf_T *buf);
 int get_fileformat_force(buf_T *buf, exarg_T *eap);
 void set_fileformat(int t, int opt_flags);
diff --git a/src/proto/mouse.pro b/src/proto/mouse.pro
new file mode 100644
index 0000000..fe5cda1
--- /dev/null
+++ b/src/proto/mouse.pro
@@ -0,0 +1,19 @@
+/* mouse.c */
+int do_mouse(oparg_T *oap, int c, int dir, long count, int fixindent);
+void ins_mouse(int c);
+void ins_mousescroll(int dir);
+int is_mouse_key(int c);
+int get_mouse_button(int code, int *is_click, int *is_drag);
+int get_pseudo_mouse_code(int button, int is_click, int is_drag);
+void set_mouse_termcode(int n, char_u *s);
+void del_mouse_termcode(int n);
+void setmouse(void);
+int mouse_has(int c);
+int mouse_model_popup(void);
+int jump_to_mouse(int flags, int *inclusive, int which_button);
+void nv_mousescroll(cmdarg_T *cap);
+void nv_mouse(cmdarg_T *cap);
+int mouse_comp_pos(win_T *win, int *rowp, int *colp, linenr_T *lnump, int *plines_cache);
+win_T *mouse_find_win(int *rowp, int *colp, mouse_find_T popup);
+int vcol2col(win_T *wp, linenr_T lnum, int vcol);
+/* vim: set ft=c : */
diff --git a/src/proto/normal.pro b/src/proto/normal.pro
index dd62226..3a0a6e0 100644
--- a/src/proto/normal.pro
+++ b/src/proto/normal.pro
@@ -2,13 +2,15 @@
 void init_normal_cmds(void);
 void normal_cmd(oparg_T *oap, int toplevel);
 void do_pending_operator(cmdarg_T *cap, int old_col, int gui_yank);
-int do_mouse(oparg_T *oap, int c, int dir, long count, int fixindent);
 void check_visual_highlight(void);
 void end_visual_mode(void);
 void reset_VIsual_and_resel(void);
 void reset_VIsual(void);
 int find_ident_under_cursor(char_u **text, int find_type);
 int find_ident_at_pos(win_T *wp, linenr_T lnum, colnr_T startcol, char_u **text, int *textcol, int find_type);
+void prep_redo(int regname, long, int, int, int, int, int);
+void clearop(oparg_T *oap);
+void clearopbeep(oparg_T *oap);
 void clear_showcmd(void);
 int add_to_showcmd(int c);
 void add_to_showcmd_c(int c);
@@ -17,6 +19,7 @@
 void do_check_scrollbind(int check);
 void check_scrollbind(linenr_T topline_diff, long leftcol_diff);
 int find_decl(char_u *ptr, int len, int locally, int thisblock, int flags_arg);
+void nv_scroll_line(cmdarg_T *cap);
 void scroll_redraw(int up, long count);
 void handle_tabmenu(void);
 void do_nv_ident(int c1, int c2);
diff --git a/src/proto/term.pro b/src/proto/term.pro
index ec73d50..50e2f5e 100644
--- a/src/proto/term.pro
+++ b/src/proto/term.pro
@@ -2,8 +2,6 @@
 guicolor_T termgui_get_color(char_u *name);
 guicolor_T termgui_mch_get_rgb(guicolor_T color);
 int set_termname(char_u *term);
-void set_mouse_termcode(int n, char_u *s);
-void del_mouse_termcode(int n);
 void getlinecol(long *cp, long *rp);
 int add_termcap_entry(char_u *name, int force);
 int term_is_8bit(char_u *name);
@@ -47,9 +45,6 @@
 void may_req_ambiguous_char_width(void);
 void may_req_bg_color(void);
 int swapping_screen(void);
-void setmouse(void);
-int mouse_has(int c);
-int mouse_model_popup(void);
 void scroll_start(void);
 void cursor_on_force(void);
 void cursor_on(void);
@@ -64,6 +59,7 @@
 void add_termcode(char_u *name, char_u *string, int flags);
 char_u *find_termcode(char_u *name);
 char_u *get_termcode(int i);
+void del_termcode(char_u *name);
 void set_mouse_topline(win_T *wp);
 int check_termcode(int max_offset, char_u *buf, int bufsize, int *buflen);
 void term_get_fg_color(char_u *r, char_u *g, char_u *b);
diff --git a/src/proto/ui.pro b/src/proto/ui.pro
index 50d3d5e..7ba82cd 100644
--- a/src/proto/ui.pro
+++ b/src/proto/ui.pro
@@ -60,11 +60,6 @@
 int clip_x11_own_selection(Widget myShell, Clipboard_T *cbd);
 void clip_x11_set_selection(Clipboard_T *cbd);
 void yank_cut_buffer0(Display *dpy, Clipboard_T *cbd);
-int jump_to_mouse(int flags, int *inclusive, int which_button);
-int mouse_comp_pos(win_T *win, int *rowp, int *colp, linenr_T *lnump, int *plines_cache);
-win_T *mouse_find_win(int *rowp, int *colp, mouse_find_T popup);
-int get_fpos_of_mouse(pos_T *mpos);
-int vcol2col(win_T *wp, linenr_T lnum, int vcol);
 void ui_focus_change(int in_focus);
 void im_save_status(long *psave);
 /* vim: set ft=c : */